Python Programación Orientada a Objetos (POO): Clase, Objeto, Herencia y Constructor

⚡ Resumen inteligente

Programación orientada a objetos en Python Este enfoque organiza el código en torno a clases y objetos, agrupando datos y comportamientos relacionados. Muestra cómo definir clases, crear objetos, aplicar la herencia e inicializar atributos con constructores.

  • 🔘 Plan de clase: Una clase agrupa datos y métodos relacionados en un modelo reutilizable para la creación de objetos.
  • ☑️ Objetos: Los objetos son instancias de una clase, cada una de las cuales almacena sus propios valores de atributos.
  • Definición de clases: La palabra clave class, los métodos con sangría y el parámetro self definen una Python clase.
  • 🧬 Herencia: Una clase derivada hereda atributos y métodos de una clase base y admite herencia múltiple.
  • 🛠️ Constructores: El método __init__() inicializa cada nuevo objeto con valores predefinidos.
  • 🤖 Relevancia de la IA: Bibliotecas de aprendizaje automático como PyTorcapas y redes del modelo ch como Python clases.

Python Programación Orientada a Objetos (POO): Clase, Objeto, Herencia y Constructor

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 un grupo lógicoping de datos y funciones. Ofrece la libertad de crear estructuras de datos que contienen contenido arbitrario y, por lo tanto, son fácilmente accesibles.

Por ejemplo, cualquier empleado bancario que quiera obtener los datos de un cliente en línea tendría que ir a clase de clientedonde se enumerarían todos sus atributos, como detalles de transacciones, detalles de retiros y depósitos, 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étodo1 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 argumento `self` se refiere al objeto en sí. De ahí el uso de la palabra `self`. Por lo tanto, dentro de este método, `self` hará referencia a la instancia específica de este objeto sobre la 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")
  • Observe que cuando llamamos al método1 o al método2, no tenemos que proporcionar la palabra clave self. Eso lo maneja automáticamente por nosotros. 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.

Cómo funciona la herencia en Python

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, method1 no está definido, pero se deriva de la clase padre myClass. La salida 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 a myClass.method1(self) y GuruEl número 99 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 guion 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á:

Bienvenidos 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

Preguntas Frecuentes

Una clase es un plano que define atributos y métodos, mientras que un objeto es una instancia concreta construida a partir de esa clase. Una clase puede crear muchos objetos, cada uno de los cuales es una instancia de un objeto.ping sus propios datos.

Python La programación orientada a objetos se basa en cuatro pilares: encapsulación (agrupar datos con métodos), abstracción (ocultar la complejidad), herencia (reutilizar una clase base) y polimorfismo (una interfaz, muchas formas).

Las variables de clase se declaran dentro del cuerpo de la clase y son compartidas por todas las instancias. Las variables de instancia se asignan dentro de __init__ usando self y pertenecen a un solo objeto.

La función super() devuelve un proxy a la clase padre, lo que permite que una clase hija llame a los métodos o al constructor de la clase padre sin nombrarla directamente. A menudo se escribe como super().__init__() para inicializar atributos heredados.

La encapsulación restringe el acceso directo a los datos internos de un objeto. Python, anteponga un guion bajo simple (_name) a un atributo para indicar que está protegido, o un guion bajo doble (__name) para la modificación de nombres.

Si. A Python Una clase puede heredar de varios padres, como por ejemplo la clase Child(A, B). Python Resuelve los nombres de métodos duplicados utilizando el Orden de Resolución de Métodos (MRO), que se inspecciona con el método mro().

La programación orientada a objetos es fundamental para los marcos de IA y aprendizaje automático. Bibliotecas como PyTorch y scikit-learn modelan redes, capas y estimadores como clases, por lo que se pueden crear subclases y reutilizar para construir modelos.

Sí. GitHub Copilot y los asistentes de IA generan Python Clases, constructores y herencia a partir de una breve instrucción. Automatizan el código repetitivo, aunque conviene revisar el resultado para comprobar que la lógica sea correcta.

Resumir este post con: