Constructeur Python généré automatiquement
-
30-10-2019 - |
Question
J'ai d'innombrables classes Python de divers projets de Sqlalchemy (et un couple de Pygame aussi), et j'ai récemment remarqué un modèle dans beaucoup d'entre eux: leurs constructeurs ont toujours fait quelque chose comme ceci:
class Foo(Base):
def __init__(self, first, last, email, mi=""):
self.first = first
self.last = last
self.email = email
self.mi = mi
... par lequel la seule chose que le constructeur a fait était de transférer un ensemble d'arguments positionnels dans un ensemble de données de données exactement nommé identique, effectuant aucun calcul ou d'autres appels de fonction.
Il me semble que cette répétition n'est pas nécessaire et sujette à l'erreur humaine lors du changement.
Cela m'amène à la question ici: est-il possible de générer automatiquement un tel __init__(self, ...)
Fonction, de préférence sans se dérouler avec CPYthon Bytecode ou utiliser des modèles / macros pour modifier le fichier source lui-même?
Pas de solution correcte