Fábrica de clases de Python
- Cómo crear una fábrica de clases en Python
-
Utilice la palabra clave
clase
para crear una fábrica de clases en Python -
Use la palabra clave
tipo
para crear una fábrica de clases en Python
Una función simple cuyo propósito es crear una clase y devolverla se conoce como Class Factory. Una fábrica de clases, siendo uno de los patrones poderosos, se utiliza ampliamente en Python.
Este tutorial demuestra las diferentes formas disponibles para crear una fábrica de clases.
Cómo crear una fábrica de clases en Python
Hay dos métodos para diseñar una fábrica de clases; uno crea una clase durante el tiempo de codificación mientras que el otro crea una clase durante el tiempo de ejecución.
El primero usa la palabra clave clase
, mientras que el segundo usa la palabra clave tipo
. Ambos métodos se explican y contrastan en el siguiente artículo.
Utilice la palabra clave clase
para crear una fábrica de clases en Python
Podemos crear una fábrica de clases usando la palabra clave clase
. Para esto, necesitamos crear una función y mantener una clase dentro de la definición de la función.
El siguiente código usa la palabra clave clase
para crear una fábrica de clases en Python.
def ballfun():
class Ball(object):
def __init__(self, color):
self.color = color
def getColor(self):
return self.color
return Ball
Ball = ballfun()
ballObj = Ball("green")
print(ballObj.getColor())
El código anterior proporciona el siguiente resultado.
green
Use la palabra clave tipo
para crear una fábrica de clases en Python
La palabra clave tipo
permite la creación dinámica de clases. Necesitamos utilizar la palabra clave tipo
para hacer una fábrica de clases en Python.
Sin embargo, debemos tener en cuenta que con la utilización de la palabra clave tipo
, las funciones se dejarán solo en el espacio de nombres, justo con la clase.
El siguiente código usa la palabra clave tipo
para crear una clase dinámica en Python.
def init(self, color):
self.color = color
def getColor(self):
return self.color
Ball = type(
"Ball",
(object,),
{
"__init__": init,
"getColor": getColor,
},
)
ballGreen = Ball(color="green")
print(ballGreen.getColor())
El código anterior proporciona el siguiente resultado.
green
La palabra clave tipo
permite clases dinámicas y creación efectiva en tiempo de ejecución y desventajas. Como puede ver en el código anterior, las funciones init
y getColor
están abarrotadas en el espacio de nombres.
Además, la perspectiva de reutilización de estas funciones también se pierde cuando las clases dinámicas se crean utilizando la palabra clave tipo
.
Una solución fácil a esto sería la introducción de una fábrica de clases. Ayuda en ambos sentidos, ya que disminuye el desorden en el código y promueve la reutilización de las funciones.
El siguiente código usa la palabra clave tipo
para crear una fábrica de clases en Python.
def create_ball_class():
def init(self, color):
self.color = color
def getColor(self):
return self.color
return type(
"Ball",
(object,),
{
"__init__": init,
"getColor": getColor,
},
)
Ball = create_ball_class()
ballObj = Ball("green")
print(ballObj.getColor())
El código anterior proporciona el siguiente resultado.
green
Ahora que hemos visto cómo crear una fábrica de clases, también es importante distinguir cuándo usar y cuándo no usar el concepto recién aprendido de fábricas de clases.
En general, las fábricas de clases son útiles cuando no sabemos qué atributos se asignarán cuando se produzca la codificación.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn