Directorio de artículos
[Conceptos básicos de Python]-07 Conocimientos básicos de programación orientada a objetos (1)
3. Herencia
La herencia es un concepto importante en la programación orientada a objetos en Python, que nos permite crear una nueva clase y heredar propiedades y métodos de una o más clases existentes (llamadas clases padre o base). Comprendamos el concepto de herencia en detalle e ilustrémoslo con un caso.
3.1 El concepto de herencia
La herencia es un mecanismo que permite que una clase (llamada subclase o clase derivada) herede propiedades y métodos de otra clase (llamada clase principal o base). Las subclases heredan las propiedades de la clase principal y pueden agregar nuevas funciones propias o anular los métodos heredados.
3.2 Sintaxis de herencia
En Python, la herencia se logra especificando la clase padre en la definición de la subclase. La sintaxis es la siguiente:
class ChildClass(ParentClass):
# 子类的定义
3.3 Ejemplos de herencia
Ilustremos el concepto de herencia con un ejemplo:
class Animal:
def __init__(self, name):
self.name = name
def sound(self):
print("动物发出声音")
class Dog(Animal):
def sound(self):
print("狗在汪汪叫")
class Cat(Animal):
def sound(self):
print("猫在喵喵叫")
dog = Dog("旺财")
cat = Cat("咪咪")
dog.sound() # 输出 "狗在汪汪叫"
cat.sound() # 输出 "猫在喵喵叫"
En el caso anterior, definimos una Animal
clase principal llamada , que tiene un sound
método para imprimir sonidos de animales. Luego creamos dos subclases Dog
y Cat
, que heredan Animal
la clase. El método se reescribe en la subclase sound
para realizar el sonido del perro ladrando y el gato ladrando respectivamente.
Al crear instancias de Dog
las Cat
clases y y llamar a sus sound
métodos, podemos ver que ladran y maúllan respectivamente. Este es el papel de la herencia, las subclases pueden heredar las características de la clase principal y modificarla o ampliarla según sea necesario.
3.4 Herencia múltiple
Además de la herencia única, Python también admite la herencia múltiple, es decir, una subclase puede heredar de varias clases principales. La sintaxis es la siguiente:
class ChildClass(ParentClass1, ParentClass2):
# 子类的定义
La herencia múltiple permite que las subclases hereden propiedades y métodos de varias clases principales al mismo tiempo que poseen las características de varias clases principales.
La herencia es una característica muy poderosa y flexible en la programación orientada a objetos, que facilita la reutilización y extensión del código. A través de la herencia, podemos usar
Cree clases relacionadas con diferentes comportamientos sin repetir el mismo código. Esto mejora la capacidad de mantenimiento y la escalabilidad del código.
4. Embalaje
En la programación orientada a objetos de Python, la encapsulación es un concepto importante que permite que los datos y los métodos relacionados se combinen en un todo, y los detalles de implementación se ocultan del exterior. A través de la encapsulación podemos controlar el acceso a las propiedades y métodos internos de la clase, mejorando la seguridad y mantenibilidad del código. Comprendamos el concepto de encapsulación en detalle e ilustrémoslo con un caso.
4.1 El concepto de encapsulación
La encapsulación es un mecanismo para envolver datos y métodos con el fin de ocultar información y proteger la consistencia de los datos. En las clases, podemos usar modificadores de acceso para controlar el nivel de acceso de propiedades y métodos. Los modificadores de acceso comunes son public, protected y private.
- Público: se puede acceder a las propiedades y métodos desde fuera de la clase.
- Protegido: solo se puede acceder a las propiedades y métodos dentro de la clase y sus subclases.
- Privado: solo se puede acceder a las propiedades y métodos dentro de la clase.
4.2 Caso de Encapsulamiento
Ilustremos el concepto de encapsulación con un ejemplo:
class Person:
def __init__(self, name, age):
self.name = name
self._age = age # 保护属性,约定以单下划线开头
self.__address = "北京" # 私有属性,约定以双下划线开头
def display_info(self):
print(f"姓名:{
self.name}")
print(f"年龄:{
self._age}")
print(f"地址:{
self.__address}")
person = Person("Mingfeng", 25)
person.display_info()
En el caso anterior, definimos una Person
clase llamada , que tiene una propiedad pública name
, una propiedad protegida _age
y una propiedad privada __address
. En los métodos de la clase podemos acceder directamente a estas propiedades.
Al crear Person
una instancia de la clase y llamar display_info
al método, podemos ver que el exterior de la clase puede acceder a las name
propiedades públicas y protegidas _age
, pero no puede acceder directamente a las propiedades privadas __address
. Se puede acceder a las propiedades privadas de formas específicas, como usar _类名__属性名
el formulario (por ejemplo _Person__address
, ).
A través de la encapsulación, podemos ocultar los detalles de implementación internos de la clase, evitar el acceso directo externo y la modificación de atributos, y mejorar la seguridad y la mantenibilidad del código. La encapsulación también proporciona una mejor organización y estructura del código, lo que hace que el código sea más legible y comprensible.
Cabe señalar que la encapsulación no pretende restringir el acceso, sino proporcionar una buena práctica de programación para hacer que el código sea más robusto y extensible. Debemos elegir la visita adecuada
Pregunte a los modificadores y siga ciertas convenciones para escribir código orientado a objetos.
5. Polimorfismo
En la programación orientada a objetos en Python, el polimorfismo es un concepto importante que permite que diferentes objetos respondan de manera diferente al mismo método. El polimorfismo puede mejorar la flexibilidad y la escalabilidad del código, de modo que podamos escribir código común para tratar con varios objetos. Comprendamos el concepto de polimorfismo en detalle e ilustrémoslo con un caso.
5.1 El concepto de polimorfismo
El polimorfismo se refiere a múltiples formas de objetos. En la programación orientada a objetos, el polimorfismo significa que diferentes objetos pueden realizar el mismo comportamiento, es decir, diferentes objetos pueden responder de manera diferente al mismo método. El polimorfismo nos permite escribir código más general y mejorar la reutilización y escalabilidad del código.
5.2 Implementación del polimorfismo
El polimorfismo se puede lograr mediante la anulación de métodos y la sobrecarga de métodos. La reescritura de métodos se refiere a la redefinición de métodos existentes en la clase principal en la subclase para lograr diferentes comportamientos. La sobrecarga de métodos se refiere a la definición de múltiples métodos en la misma clase, tienen el mismo nombre pero diferentes tipos de parámetros o número de parámetros, para lograr diferentes comportamientos.
5.3 El caso del polimorfismo
Ilustremos el concepto de polimorfismo con un ejemplo:
class Animal:
def sound(self):
pass
class Dog(Animal):
def sound(self):
print("汪汪汪!")
class Cat(Animal):
def sound(self):
print("喵喵喵!")
def make_sound(animal):
animal.sound()
dog = Dog()
cat = Cat()
make_sound(dog) # 输出 "汪汪汪!"
make_sound(cat) # 输出 "喵喵喵!"
En el caso anterior, definimos una Animal
clase principal llamada , que tiene un sound
método llamado . Luego creamos dos subclases Dog
y Cat
, que anulan respectivamente sound
los métodos para lograr diferentes sonidos.
Podemos lograr el polimorfismo pasando diferentes objetos animales en la función definiendo una make_sound
función llamada , que toma un Animal
parámetro de un tipo y llama a su método. sound
Ya sea Dog
un objeto o Cat
un objeto, todos responden a sound
métodos y emiten sus propios sonidos.
El polimorfismo nos permite escribir código genérico que realiza las mismas operaciones en diferentes objetos. De esta manera, podemos manejar varios tipos de objetos de manera más flexible y mejorar la reutilización y escalabilidad del código.
resumen:
El polimorfismo es un concepto importante en la programación orientada a objetos, que permite que diferentes objetos respondan de manera diferente al mismo método. A través de la anulación de métodos y la sobrecarga de métodos, podemos lograr el polimorfismo. El polimorfismo proporciona una forma más flexible y extensible de escribir código, mejorando la reutilización y el mantenimiento del código.
en conclusión
A partir de esta introducción, ahora debería tener una comprensión básica de la programación orientada a objetos en Python. La programación orientada a objetos es un poderoso paradigma de programación que puede mejorar la legibilidad y el mantenimiento del código y proporciona funciones como encapsulación, herencia y polimorfismo. Espero que este artículo te ayude a aprender programación orientada a objetos en Python, ¡y deseo que progreses en tu viaje de programación!