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

Resumen

โ€œ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.

Resumir este post con: