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.
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.
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!