Domanda

Ho innumerevoli lezioni di Python di vari progetti di Sqlalchemy (e anche una coppia di Pygame), e di recente ho notato uno schema in molti di essi: i loro costruttori sono sempre andati qualcosa del genere:

class Foo(Base):
    def __init__(self, first, last, email, mi=""):
        self.first = first
        self.last = last
        self.email = email
        self.mi = mi

... per cui l'unica cosa che il costruttore ha fatto era trasferire un insieme di argomenti posizionali in un set di dati esattamente denominato identico, eseguendo alcun calcolo o altre chiamate di funzione.

Mi sembra che questa ripetizione non sia necessaria e inclini all'errore umano al cambiamento.

Questo mi porta alla domanda qui: è possibile generare automaticamente un tale __init__(self, ...) Funzione, preferibilmente senza muoverti con bytecode CPython o usando modelli/macro per modificare il file di origine stesso?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top