Saltar al contenido

Python OOPs: Clase, objeto, herencia y constructor con ejemplo

diciembre 8, 2019

¿Qué es una Clase?

Una Clase es una agrupación lógica de datos y funciones. Da la libertad de crear estructuras de datos que contengan contenido arbitrario y por lo tanto sean fácilmente accesibles.

Por ejemplo, para cualquier empleado de banco que desee obtener los datos del cliente en línea, debe ir a clase de cliente , donde todos sus atributos como detalles de transacción, detalles de retiro y depósito, deuda pendiente, etc., serán listados.

En este tutorial, aprenderemos,

  • Cómo definir clases Python
  • Cómo funciona la herencia
  • Constructores Python

Cómo definir clases Python

Para definir la clase es necesario tener en cuenta los siguientes puntos

Paso 1) En Python, las clases se definen por la palabra clave “Class”

clase myClass():
>

Paso 2) Dentro de las clases, puede definir funciones o métodos que forman parte de esta clase

def método1 (self):
   imprimir "Guru99"
def (self,someString):
   imprimir "Software Testing:" + un poco de String

>

  • Aquí hemos definido el método1 que imprime “Guru99”.
  • Otro método que hemos definido es method2 que imprime “Software Testing” + SomeString. SomeString es la variable suministrada por el método de llamada

Paso 3) Todo en una clase está sangrado, igual que el código de la función, el bucle, la sentencia if, etc. Cualquier cosa no sangrada no está en la clase

NOTA : Sobre el uso de “self” en Python

  • El auto-argumento se refiere al objeto mismo. De ahí el uso de la palabra “yo”. Así que dentro de este método, self se referirá a la instancia específica de este objeto que está siendo operado.
  • Self es el nombre preferido por convención por Pythons para indicar el primer parámetro de los métodos de instancia en Python. Es parte de la sintaxis de Python para acceder a los miembros de los objetos

Paso 4) Para hacer un objeto de la clase

 c = myClass()

>

Paso 5) Para llamar a un método en una clase

 c.method1()
    c.method2(" Probar es divertido")

>

  • Note que cuando llamamos al método1 o al método2, no tenemos que proporcionar la palabra clave propia. Eso es manejado automáticamente por el tiempo de ejecución de Python.
  • El tiempo de ejecución de Python pasará el valor “self” cuando llame a un método de instancia, ya sea que lo proporcione deliberadamente o no
  • Sólo tienes que preocuparte por los argumentos no propios

Paso 6) Aquí está el código completo

# Archivo de ejemplo para trabajar con clases
clase myClass():
def1(self):
print(“Guru99”)
def method2(self,someString):
print(“Prueba de software:” + algo de cadena)
def main():
# Ejercita los métodos de la clase
c = myClass ()
c.method1()
c.method2(” Probar es divertido”)
si __nombre__== “__main__”:
main()>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>)

Cómo funciona la herencia

La herencia es una característica utilizada en la programación orientada a objetos; se refiere a la definición de una nueva clase con menos o ninguna modificación a una clase existente. La nueva clase se llama clase derivada y de una que hereda se llama base . Python soporta la herencia; también soporta múltiples herencias . Una clase puede heredar atributos y métodos de comportamiento de otra clase llamada subclase o clase heredera.

Sintaxis de herencia de pitón

clase Derivada (Clase Base):
cuerpo_de_la_clase_derivada
>

Paso 1) Ejecute el siguiente código

# Archivo de ejemplo para trabajar con clases
clase myClass():
def1(self):
print(“Guru99”)
clase childClass(myClass):
#def método1(self):
#myClass.method1(self);
#imprimir (“childClass Method1”)
def method2(self):
print(“método childClass2”)
def main():
# Ejercita los métodos de la clase
c2 = childClass()
c2.method1()
#c2.method2()
si __nombre__== “__main__”:
main()
>

Observe que en childClass, el método 1 no está definido, sino que se deriva de la myClass de los padres. La salida es “Guru99”.

Paso 2) Descomentar la línea # 8 y 10. Ejecutar el código

Ahora, el método 1 está definido en el childClass y la salida “childClass Method1” se muestra correctamente.

Paso 3) Descomente la línea #9. Ejecute el código

Puede usar un método de la clase padre usando la sintaxis

NombreDeClaseDePadreNombreDeMétodo(self)
>

En nuestro caso, llamamos, myClass.method1(self) y Guru99 se imprime como se espera

Paso 4 ) Descomente la línea #19. Ejecuta el código.

El método 2 de la clase infantil se llama “childClass method2” y se imprime como se espera.

Constructores Python

Un constructor es una función de clase que instancia un objeto a valores predefinidos.

Comienza con un doble guión bajo (_). Método __init__()

En el siguiente ejemplo estamos tomando el nombre del usuario que utiliza el constructor.

clase Usuario:
nombre = “”
def __init__(yo, nombre):
self.name = nombre
def sayHello(self):
print(“Bienvenido a Guru99, ” + self.name)
Usuario1 = Usuario (“Alex”)
Usuario1.sayHello()
>

La salida será:

Bienvenido a Guru99, Alex

Python 2 Ejemplo

Los códigos de arriba son ejemplos de Python 3. Si quieres correr en Python 2 por favor considera el siguiente código.

>

Resumen:

La “clase” es una agrupación lógica de funciones y datos. La clase Python proporciona todas las características estándar de la Programación Orientada a Objetos.

  • Mecanismo de herencia de clase
  • Una clase derivada que anula cualquier método de su clase base
  • Un método puede llamar al método de una clase base con el mismo nombre
  • Las clases Python están definidas por la palabra clave “class” misma
  • Dentro de las clases, puede definir funciones o métodos que son parte de la clase
  • Todo en una clase está sangrado, al igual que el código de la función, el bucle, la sentencia if, etc.
  • El auto-argumento en Python se refiere al objeto mismo. Self es el nombre preferido por convención por Pythons para indicar el primer parámetro de los métodos de instancia en Python
  • El tiempo de ejecución de Python pasará automáticamente el valor “self” cuando llame a un método de instancia, tanto si lo proporciona deliberadamente como si no
  • En Python, una clase puede heredar atributos y métodos de comportamiento de otra clase llamada subclase o clase heredera.