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

OOP en Python

OOP en Python es un enfoque de programación que se centra en el uso de objetos y clases de la misma manera 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 especial atención 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 contengan contenido arbitrario y, por lo tanto, de fácil acceso.

Por ejemplo, cualquier empleado bancario que quiera obtener los datos de un cliente en línea tendría que ir a clase de cliente, donde se enumerarán todos sus atributos como detalles de transacciones, detalles de retiro y depósito, deuda pendiente, etc.

Como definir Python privadas

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

Paso 1) In Python, las clases están definidas por el "Clase" keyword

class myClass():

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

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

Paso 3) Todo lo que hay en una clase tiene sangría, al igual que el código de la función, el bucle, la declaración if, etc. Todo lo que no tenga sangría no está en la clase.

Definición Python privadas

NOTA: Acerca del uso de “yo” en Python

  • El autoargumento se refiere al objeto mismo. 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 que se está operando.
  • Yo 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 Python sintaxis para acceder a miembros de 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(" Testing is fun")
  • Tenga en cuenta que cuando llamamos al método1 o al método2, no tenemos que proporcionar la palabra clave propia. Eso lo maneja automáticamente el Python tiempo de ejecución.
  • Python El tiempo de ejecución pasará el valor "propio" cuando llame a un método de instancia en la instancia, ya sea que lo proporcione deliberadamente o no.
  • Sólo tienes que preocuparte por los argumentos ajenos a ti mismo.

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

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  def method2(self,someString):    
      print("Software Testing:" + someString)
  
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()

Cómo funciona la herencia

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

Definición Python privadas

Python Sintaxis de herencia

class DerivedClass(BaseClass):
    body_of_derived_class

Paso 1) Ejecute el siguiente código

# Example file for working with classes
class 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 methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Observe que en childClass, el método1 no está definido pero se deriva del padre myClass. El resultado es “Guru99”.

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

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

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

Puedes llamar a un método de la clase padre usando la sintaxis

ParentClassName.MethodName(self)

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

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

Se llama al método 2 de la clase secundaria y se imprime el “método childClass2” como se esperaba.

Python Constructores

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

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

En el siguiente ejemplo, tomamos el nombre del usuario utilizando el constructor.

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

La salida será:

Bienvenido a Guru99, Alex

Python 2 Ejemplo

Los códigos anteriores son Python 3 ejemplos, si quieres correr Python 2 Por favor considere el siguiente código.

# How to define Python classes
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
  def method2(self,someString):    
      print "Software Testing:" + someString
      
   
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()


#How Inheritance works
# Example file for working with classes
class 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 methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Conozca nuestro próximo tutorial sobre Polimorfismo en Python

Resum

“Clase” es una agrupación lógica de funciones y datos. Python La clase 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.
  • Python Las clases se definen por palabra clave. "clase" sí mismo
  • Dentro de las clases, puedes definir funciones o métodos que forman parte de la clase.
  • Todo en una clase tiene sangría, al igual que el código de la función, el bucle, la declaración if, etc.
  • El autoargumento en Python Se refiere al objeto mismo. Yo es el nombre preferido por convención por Pythons para indicar el primer parámetro de los métodos de instancia en Python
  • Python El tiempo de ejecución pasará el valor "propio" automáticamente cuando llame a un método de instancia en la instancia, ya sea que lo proporcione deliberadamente o no.
  • In Python, una clase puede heredar atributos y métodos de comportamiento de otra clase llamada subclase o clase heredera.