Python OOP:clase, objeto, herencia y constructor con ejemplo
OOP en Python
OOP en Python es un enfoque de programación que se enfoca en usar 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 de programación orientada a objetos 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. Brinda la libertad de crear estructuras de datos que contienen contenido arbitrario y, por lo tanto, de fácil acceso.
Por ejemplo, para cualquier empleado del banco que desee obtener los detalles del cliente en línea, iría a clase de cliente. , donde se enumerarían todos sus atributos, como los detalles de la transacción, los detalles de retiro y depósito, la deuda pendiente, etc.
En este tutorial, aprenderemos,
- Cómo definir las clases de Python
- Cómo funciona la herencia
- Constructores Python
Cómo definir las clases de Python
Para definir la clase, debe tener en cuenta los siguientes puntos
Paso 1) En Python, las clases están definidas por “Clase” palabra clave
class myClass():
Paso 2) Dentro de las clases, puede 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étodo2 que imprime "Pruebas de software"+ SomeString. SomeString es la variable suministrada por el método de llamada
Paso 3) Todo en una clase tiene sangría, al igual que el código en la función, bucle, instrucción if, etc. Cualquier cosa que no esté sangrada no está en la clase
NOTA :Acerca del uso de "self" 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.
- Self es el nombre preferido por convención de Python 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) 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 tiempo de ejecución de Python.
- El tiempo de ejecución de Python pasará el valor "auto" 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
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 a una clase existente. La nueva clase se llama clase derivada y de uno que hereda se llama base . Python admite la herencia; también admite herencias múltiples . 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
# 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()
Tenga en cuenta que en childClass, method1 no está definido pero se deriva del 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 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 padre 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 Python
Un constructor es una función de clase que instancia un objeto en valores predefinidos.
Comienza con un doble guión bajo (_). Es el método __init__()
En el siguiente ejemplo, estamos tomando el nombre del usuario usando 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
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 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()
Resumen:
“Clase” es una agrupación lógica de funciones y datos. La clase de 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” sí mismo
- Dentro de las clases, puede definir funciones o métodos que son parte de la clase
- Todo en una clase tiene sangría, al igual que el código en la función, bucle, instrucción if, etc.
- El argumento self 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á el valor "auto" 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.
python
- Clase y objeto de C#
- Programación orientada a objetos de Python
- Herencia de Python
- Creación de robots con Raspberry Pi y Python
- Diferencia entre estructura y clase:explicada con el ejemplo de C++
- Python String strip() Función con EJEMPLO
- Contador de Python en colecciones con ejemplo
- type() y isinstance() en Python con ejemplos
- Índice de lista de Python () con ejemplo
- Java - Objeto y Clases
- Python - Orientado a Objetos