Python: llamar al método de la clase principal

Una clase es un proyecto o prototipo definido por el usuario a partir del cual se crean objetos. Las clases proporcionan un medio para agrupar datos y funcionalidad. La creación de una nueva clase crea un nuevo tipo de objeto, lo que permite crear nuevas instancias de ese tipo.

Ejemplo:

# Python program to demonstrate
# classes
  
  
class cls:
  
    # Constructor
    def __init__(self, fname, mname, lname):
        self.firstname = fname
        self.middlename = mname
        self.lastname = lname
          
    # class Function
    def print(self):
        print(self.firstname, self.middlename, self.lastname)
  
# Use the Parent class to create an object
# and then execute the print method:
x = cls("Geeks", "for", "Geeks")
x.print()

Producción:

Geeks for Geeks

Llamar al método de la clase principal

Para comprender el concepto de clase principal, debe conocer la herencia en Python . En términos más simples, la herencia es el concepto por el cual una clase (comúnmente conocida como clase secundaria o subclase) hereda las propiedades de otra clase (comúnmente conocida como clase principal o superclase).

Pero, ¿alguna vez se ha preguntado acerca de llamar a las funciones definidas dentro de la clase principal con la ayuda de la clase secundaria? Bueno, esto se puede hacer usando Python. Solo tiene que crear un objeto de la clase secundaria y llamar a la función de la clase principal usando el dot(.)operador.

Ejemplo:

# Python code to demonstrate 
# parent call method 
  
class Parent:
  
    # create a parent class method
    def show(self):
        print("Inside Parent class")
  
# create a child class
class Child(Parent):
      
    # Create a child class method
    def display(self):
        print("Inside Child class")
  
# Driver's code
obj = Child()
obj.display()
  
# Calling Parent class
obj.show()

Producción

Inside Child class
Inside Parent class

Llamar al método de la clase principal después de anular el método

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.

Los métodos de la clase principal también se pueden llamar dentro de los métodos anulados. Esto generalmente se puede lograr de dos maneras.

  • Uso de Classname: los métodos de clase de los padres se pueden llamar usando el padre classname.methoddentro del método anulado.

    Ejemplo:

    # Python program to demonstrate
    # calling the parent's class method
    # inside the overridden method
      
      
    class Parent():
          
        def show(self):
            print("Inside Parent")
              
    class Child(Parent):
          
        def show(self):
              
            # Calling the parent's class
            # method
            Parent.show(self)
            print("Inside Child")
              
    # Driver's code
    obj = Child()
    obj.show()

    Producción:

    Inside Parent
    Inside Child
    
  • Usando Super(): la función de Python super()nos brinda la posibilidad de referirnos a la clase principal explícitamente. Es básicamente útil cuando tenemos que llamar funciones de superclase. Devuelve el objeto proxy que nos permite referirnos a la clase principal por ‘super’.

    Ejemplo 1:

    # Python program to demonstrate
    # calling the parent's class method
    # inside the overridden method using
    # super()
      
      
    class Parent():
          
        def show(self):
            print("Inside Parent")
              
    class Child(Parent):
          
        def show(self):
              
            # Calling the parent's class
            # method
            super().show()
            print("Inside Child")
              
    # Driver's code
    obj = Child()
    obj.show()

    Producción:

    Inside Parent
    Inside Child
    

    Ejemplo 2:

    # Program to define the use of super() 
    # function in multiple inheritance 
    class GFG1: 
        def __init__(self): 
            print('HEY !!!!!! GfG I am initialised(Class GEG1)'
        
        def sub_GFG(self, b): 
            print('Printing from class GFG1:', b) 
        
    # class GFG2 inherits the GFG1 
    class GFG2(GFG1): 
        def __init__(self): 
            print('HEY !!!!!! GfG I am initialised(Class GEG2)'
            super().__init__() 
        
        def sub_GFG(self, b): 
            print('Printing from class GFG2:', b) 
            super().sub_GFG(b + 1
        
    # class GFG3 inherits the GFG1 ang GFG2 both 
    class GFG3(GFG2): 
        def __init__(self): 
            print('HEY !!!!!! GfG I am initialised(Class GEG3)'
            super().__init__() 
        
        def sub_GFG(self, b): 
            print('Printing from class GFG3:', b) 
            super().sub_GFG(b + 1
        
        
    # main function 
    if __name__ == '__main__'
        
        # created the object gfg 
        gfg = GFG3() 
        
        # calling the function sub_GFG3() from class GHG3 
        # which inherits both GFG1 and GFG2 classes 
        gfg.sub_GFG(10)

    Producción:

    HEY !!!!!! GfG I am initialised(Class GEG3)
    HEY !!!!!! GfG I am initialised(Class GEG2)
    HEY !!!!!! GfG I am initialised(Class GEG1)
    Printing from class GFG3: 10
    Printing from class GFG2: 11
    Printing from class GFG1: 12
    

Publicación traducida automáticamente

Artículo escrito por priyanshid1 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 *