Constructor de pitón generado automáticamente
-
30-10-2019 - |
Pregunta
Tengo innumerables clases de Python de varios proyectos de Sqlalchemy (y una pareja de Pygame también), y recientemente noté un patrón en muchos de ellos: sus constructores siempre fueron algo así:
class Foo(Base):
def __init__(self, first, last, email, mi=""):
self.first = first
self.last = last
self.email = email
self.mi = mi
... por lo que lo único que hizo el constructor fue transferir un conjunto de argumentos posicionales a un conjunto de miembros de datos con nombre exactamente nombrado, realizando ningún cálculo u otras llamadas de función.
Me parece que esta repetición es innecesaria y propensa al error humano tras el cambio.
Esto me lleva a la pregunta aquí: ¿es posible generar automáticamente tal __init__(self, ...)
función, preferiblemente sin mezclar con cpython bytecode o usando plantillas/macros para alterar el archivo fuente en sí?
No hay solución correcta