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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top