Python: acceda al atributo de 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. Cada instancia de clase puede tener atributos adjuntos para mantener su estado. Las instancias de clase también pueden tener métodos (definidos por su clase) para modificar su estado.

Ejemplo:

# Python program to demonstrate
# classes and objects
  
  
# Creating a class 
class Student:
      
    # Class Variable
    stream = 'COE'
      
    def __init__(self, name, roll_no):
  
        # Instance Variable
        self.name = name 
        self.roll_no = roll_no 
  
# Objects of Student class 
a = Student('SHIVAM', 3425) 
b = Student('SACHIN', 3624)
  
print(a.stream)
print(b.stream)
print(a.name)
print(b.name)
print(a.roll_no) 
print(b.roll_no)
  
# Class variables can be 
# accessed using class 
# name also 
print(Student.stream)

Producción:

COE
COE
SHIVAM
SACHIN
3425
3624
COE

Nota: Para obtener más información, consulte Clases y objetos de Python .

Acceso a las funciones de la clase principal

Cuando una clase hereda de otra clase, hereda los atributos y métodos de otra clase. Una clase que hereda de otra clase se conoce como clase secundaria y la clase de la que hereda la clase secundaria se conoce como clase principal. Pero, ¿alguna vez te has preguntado cómo acceder a los métodos de clase de los padres? Esto es realmente simple, solo tiene que llamar al constructor de la clase principal dentro del constructor de la clase secundaria y luego el objeto de una clase secundaria puede acceder a los métodos y atributos de la clase principal.

Ejemplo:

# Python code to demonstrate 
# how parent constructors are called. 
    
# parent class 
class Person( object ):     
    
        # __init__ is known as the constructor          
        def __init__(self, name, idnumber):    
                self.name = name 
                self.idnumber = idnumber 
                  
        def display(self): 
                print(self.name) 
                print(self.idnumber) 
    
# child class 
class Employee( Person ):            
        def __init__(self, name, idnumber, salary): 
                self.salary = salary 
    
                # invoking the constructor of 
                # the parent class  
                Person.__init__(self, name, idnumber)  
          
        def show(self):
            print(self.salary)
    
                    
# creation of an object
# variable or an instance 
a = Employee('Rahul', 886012, 30000000)     
    
# calling a function of the
# class Person using Employee's
# class instance 
a.display()
a.show() 

Producción:

Rahul
886012
30000000

Nota: Para obtener más información, consulte Herencia en Python .

Acceso al método de la clase principal desde la clase interna

Una clase interna o clase anidada se define dentro del cuerpo de otra clase. Si se crea un objeto usando una clase, se puede usar el objeto dentro de la clase raíz. Una clase puede tener una o más clases internas.

Tipos de clases internas:

  • Clase interna múltiple
  • Clase Interna Multinivel

Clase interna múltiple: una clase que contiene más de una clase interna.

MULTIPLE INNER CLASS

Ejemplo:

class Electronics:
    def __init__(self):
        print('SINGLA ELECTRONICS')
        self.laptop=self.Laptop()
        self.mobile=self.Mobile()
          
    # Inner Class 1
    class Laptop:
        def operation(self):
            print('DELL Inspiron 15')
              
    # Inner Class 2
    class Mobile:
        def operation(self):
            print('Redmi Note 5')
              
# Driver Code
ele = Electronics()
ele.laptop.operation()
ele.mobile.operation()

Producción:

SINGLA ELECTRONICS
DELL Inspiron 15
Redmi Note 5

Clase interna multinivel: en las clases internas multinivel, la clase interna contiene otra clase que es una clase interna a la anterior.

MULTILEVEL INNER CLASS

Ejemplo:

class Vehicle:
  
    def __init__(self):
          
        # instantiating the 'Inner' class
        self.inner = self.Car()
          
        # instantiating the multilevel
        # 'InnerInner' class
        self.innerinner = self.inner.Maruti()
  
    def show_classes(self):
        print("This is in Outer class that is Vehicle")
          
  
    # inner class
    class Car:
        # First Inner Class
  
        def __init__(self):
              
            # instantiating the 
            # 'InnerInner' class
            self.innerinner = self.Maruti()
              
        def show_classes(self):
            print("This is in Inner class that is Car")
              
        # multilevel inner class
        class Maruti:
  
            def inner_display(self, msg):
                print("This is in multilevel InnerInner\
                      class that is Maruti")
                print(msg)
  
      
# Driver Code
outer = Vehicle()
outer.show_classes()
inner = outer.Car()
inner.show_classes()
innerinner = inner.Maruti()
  
# Calling the method inner_display
innerinner.inner_display("Just Print It!")

Producción:

This is in Outer class that is Vehicle
This is in Inner class that is Car
This is in multilevel InnerInner class that is Maruti
Just Print It!

Publicación traducida automáticamente

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