Imaginemos que tienes una clase Class1 con una buena colección de métodos. Para facilitar su uso quieres agrupar los métodos, de modo que tendrias esto:
c = Class1(param1, param2) c.colors.green() c.colors.yellow() c.animals.bird() c.animals.mouse() etc..
Ademas necesitas que los metodos tengan acceso a los datos de la clase padre.
Para agrupar métodos en clases de Python, puedes utilizar clases internas (o anidadas). Estas clases se definen dentro del cuerpo de otra clase. Si se crea un objeto utilizando una clase, el objeto dentro de la clase raíz puede ser utilizado. Una clase puede tener una o más clases internas. Si quieres que los métodos de las clases internas tengan acceso a los datos de la clase padre, puedes hacerlo pasando self a la clase interna.
Aquí un ejemplo de cómo hacerlo:
class Class1: def __init__(self, param1, param2): self.param1 = param1 self.param2 = param2 self.colors = self.Colors(self) self.animals= self.Animals(self) class Colors: def __init__(self, parent): self.parent = parent def green(self): print("green") print(self.parent.param1) def yellow(self): print("yellow") print(self.parent.param2) class Animals: def __init__(self, parent): self.parent = parent def bird(self): print("bird") print(self.parent.param1) def mouse(self): print("mouse") print(self.parent.param2)
Deja un comentario