Tutorial de Python - Clase

Jinku Hu 30 enero 2023
  1. Introducción a OOP
  2. Clases y objetos Python
  3. Constructores de clases en Python
  4. Borrar los atributos de la clase
Tutorial de Python - Clase

Hablaremos de los fundamentos de la programación orientada a objetos (OOP) en Python como clase, objeto en esta sección.

Python es un lenguaje de programación orientado a objetos, en otras palabras, todo en Python es un objeto.

Introducción a OOP

Los fundamentos de la Programación Orientada a Objetos (POO) consisten en las siguientes terminologías:

  1. Clases
  2. Miembros de los datos
  3. Métodos
  4. Objetos
  5. Constructores
  6. Sobrecarga del método
  7. Sobrecarga del operador
  8. Herencia
  9. Instancias de clase e instanciación

Clases y objetos Python

Una clase puede ser pensada como un esquema para un objeto mientras que un objeto es una colección de miembros de datos y la función de miembro.

Una clase contiene miembros de datos (variables) y funciones de miembros (métodos) a los que se puede acceder utilizando los objetos de esa clase.

Crear una clase

Se crea una clase utilizando la palabra clave class y luego el nombre de la clase:

La sintaxis es la siguiente:

class NameofClass:
    # data members of the class
    # member functions of the class

Ejemplo:

>>> class Waiter:
	name = "Andrew"
	def display():
		print('Waiter Class')	
>>> print(Waiter.display)
<function Waiter.display at 0x0359E270>
>>> print(Waiter.name)
Andrew

Este ejemplo crea una clase llamada Waiter que contiene un miembro de datos name y un método de miembro display.

Crear una instancia de objeto de una clase

Una instancia de objeto puede ser creada usando la siguiente sintaxis:

obj = className()

Ejemplo:

>>> w = Waiter()
>>> print(w.name)
Andrew
>>> w.display()
Waiter Class

Se puede ver aquí que el objeto de la clase Waiter se utiliza para acceder a los miembros (atributos) de la clase mediante el operador de puntos.

Atributos de la clase

Junto con los miembros de datos y las funciones de los miembros, hay algunos atributos incorporados de una clase Python.

  1. __dict__: es un diccionario que contiene el namespace de la clase.
  2. __doc__: es la cadena de documentación de la clase
  3. __nombre__: es el nombre de la clase
  4. __módulo__: es el módulo en el que se define la clase.
  5. __bases__: es una tupla que contiene la clase base.

Se puede acceder a estos atributos mediante el operador dot.

Ejemplo:

>>> class Waiter:
	"This is a waiter class"
	name="Andrew"
	def display():
		print("You are in waiter class")
>>> w = Waiter()

>>> print(w.__doc__)
This is a waiter class

>>> print(w.__dict__)
{}

>>> print(w.__module__)
__main__

Constructores de clases en Python

Un constructor en Python OOP se crea usando __init__(). Este método incorporado es un método especial llamado cuando se crea un objeto de la clase correspondiente.

Los constructores se utilizan para inicializar los miembros de datos de la clase.

>>> class Waiter:
        def __init__(self, n):
            self.name=n
            self.age=20
        def display(self):
            print(self.name)

>>> w=Waiter('Rob')
>>> w.display()
Rob

Aquí, el argumento self se utiliza en la definición del constructor y también en todos los métodos de la clase. Por lo tanto, cuando se llama a una función como w.display(), se interpreta como Waiter.display(w).

Borrar los atributos de la clase

Puede utilizar la sentencia del para borrar los atributos y objetos de una clase.

>>> w=Waiter('Rob')
>>> w.__dict__
{'name': 'Rob', 'age': 20}
>>> del w.age
>>> w.__dict__
{'name': 'Rob'}
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook