Python OOP: clase, objeto, herencia y constructor con ejemplo

POO en Python

OOP en Python es un enfoque de programación que se centra en el uso de objetos y clases al igual que otros lenguajes de programación generales. Los objetos pueden ser cualquier entidad del mundo real. Python permite a los desarrolladores desarrollar aplicaciones utilizando el enfoque OOP con un enfoque principal en la reutilización del código. Es muy fácil crear clases y objetos en Python.

¿Qué es una clase?

Una clase en Python es una agrupación lógica de datos y funciones. Da la libertad de crear estructuras de datos que contienen contenido arbitrario y, por lo tanto, de fácil acceso.

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

En este tutorial, aprenderemos,

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

Cómo definir clases de Python

Para definir la clase, debe considerar los siguientes puntos

Paso 1) En Python, las clases se definen mediante la palabra clave "Clase".

class myClass():

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

def method1 (self):print "Guru99"def method2 (self,someString):print "Software Testing: + someString
  • Aquí hemos definido el método1 que imprime "Guru99".
  • Otro método que hemos definido es el método2 que imprime "Pruebas de software" + SomeString. SomeString es la variable proporcionada por el método de llamada

Paso 3) Todo en una clase está sangrado, al igual que el código en la función, bucle, declaración if, etc. Todo lo que no esté sangrado no está en la clase.

NOTA : Acerca del uso de "self" en Python

  • El autoargumento se refiere al objeto en sí. De ahí el uso de la palabra yo. Entonces, dentro de este método, self se referirá a la instancia específica de este objeto en el que se está operando.
  • 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 miembros de objetos.

Paso 4) Hacer un objeto de la clase.

c = myClass()

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

c.method1()c.method2(" Testing is fun")
  • Observe que cuando llamamos al método1 o al método2, no tenemos que proporcionar la palabra clave self. Eso lo maneja automáticamente el tiempo de ejecución de Python.
  • El tiempo de ejecución de Python pasará el valor "propio" cuando llame a un método de instancia en una instancia, ya sea que lo proporcione deliberadamente o no
  • Solo tienes que preocuparte por los argumentos ajenos a ti mismo

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

# Archivo de ejemplo para trabajar con clasesclase myClass ():def método1 (uno mismo):imprimir ("Guru99")def método2 (self, someString):print ("Prueba de software: + someString)def main ():# ejercitar los métodos de la clasec = myClass ()c.method1 ()c.method2 ("Probar es divertido")si __name __ == "__main__":principal()

Cómo funciona la herencia

La herencia es una característica que se utiliza en la programación orientada a objetos; se refiere a definir una nueva clase con menos o ninguna modificación a una clase existente. La nueva clase se llama clase derivada y de la que hereda se llama base . Python admite la herencia; también admite 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 Python

class DerivedClass(BaseClass):body_of_derived_class

Paso 1) Ejecute el siguiente código

# Archivo de ejemplo para trabajar con clasesclase myClass ():def método1 (uno mismo):imprimir ("Guru99")clase childClass (myClass):#def method1 (self):# myClass.method1 (self);#print ("método childClass1")def método2 (uno mismo):print ("childClass method2")def main ():# ejercitar los métodos de la clasec2 = childClass ()c2.method1 ()# c2.method2 ()si __name __ == "__main__":principal()

Observe que en childClass, method1 no está definido pero se deriva del padre myClass. La salida es "Guru99".

Paso 2) Descomente las líneas n. ° 8 y 10. Ejecute el código

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

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

Puede llamar a un método de la clase principal usando la sintaxis

ParentClassName.MethodName(self)

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

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

Se llama al método 2 de la clase secundaria y se imprime "childClass method2" como se esperaba.

Constructores de Python

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

Comienza con un guión bajo doble (_). Es el método __init __ ()

En el siguiente ejemplo, tomamos el nombre del usuario que usa el constructor.

class User:name = ""def __init__(self, name):self.name = namedef sayHello(self):print("Welcome to Guru99, " + self.name)User1 = User("Alex")User1.sayHello()

La salida será:

Bienvenido a Guru99, Alex

Ejemplo de Python 2

Los códigos anteriores son ejemplos de Python 3. Si desea ejecutar Python 2, considere el siguiente código.

# How to define Python classes# Example file for working with classesclass myClass():def method1(self):print "Guru99"def method2(self,someString):print "Software Testing: + someStringdef main():# exercise the class methodsc = myClass ()c.method1()c.method2(" Testing is fun")if __name__== "__main__":main()#How Inheritance works# Example file for working with classesclass myClass():def method1(self):print "Guru99"class childClass(myClass):#def method1(self):#myClass.method1(self);#print "childClass Method1"def method2(self):print "childClass method2"def main():# exercise the class methodsc2 = childClass()c2.method1()#c2.method2()if __name__== "__main__":main()

Resumen:

"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 clases
  • 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 de Python se definen mediante la palabra clave "clase" en
  • 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 en la función, bucle, instrucción if, etc.
  • El autoargumento en Python se refiere al objeto en sí. 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á el valor "propio" automáticamente cuando llame a un método de instancia en una instancia, ya sea que lo proporcione deliberadamente o no
  • En Python, una clase puede heredar atributos y métodos de comportamiento de otra clase llamada subclase o clase heredera.

Articulos interesantes...