Anulación de miembros de clases anidadas en Python

Anular es un concepto de OOP (programación orientada a objetos) y generalmente tratamos este concepto en Herencia. La anulación de métodos es una capacidad de cualquier lenguaje de programación orientado a objetos que permite que una subclase o clase secundaria proporcione una implementación específica de un método que ya proporciona una de sus superclases o clases principales.

Consideremos un ejemplo de la vida real, donde los genes están integrados con rasgos para la próxima generación y cada generación tiene sus propios rasgos que transfieren a las otras generaciones con la ayuda de Genes. Aquí tomamos una clase Genes y una Rasgo de clase anidada. La clase de rasgo tiene algunos rasgos como caminar, cabello y enfermedad, y sus valores. Estos genes se transferirán a la clase secundaria y la clase secundaria puede tener algunos rasgos propios y algunos heredados de su padre. Esta funcionalidad se puede implementar con la ayuda de anular miembros de clase anidados.

Ejemplo:

# Genes are like messages in human 
# body which transfers from parent to 
# child. Same thing we have used here
# to show the real implementation of 
# above concept in python.
  
class Genes:
      
    # Inner class
    class Trait:
        walk ='Fast'
        hair ='Black'
        disease =('Diabetes', 'Migraine', 'TB')
  
class child(Genes):
      
    # Inner class
    class Trait(Genes.Trait):
        walk ='Fast'
        hair ='Black'
        disease =('Typhoid', ) + Genes.Trait.disease
          
          
# Driver's code
print(Genes.Trait.disease)
print(child.Trait.disease)

Producción:

('Diabetes', 'Migraine', 'TB')
('Typhoid', 'Diabetes', 'Migraine', 'TB')>

Nota: use clases anidadas solo si es necesario; de lo contrario, solo hará que su código sea complejo y difícil de depurar.

Publicación traducida automáticamente

Artículo escrito por kartik arora 2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *