質問

私はSqlalchemyのさまざまなプロジェクトから数え切れないほどのPythonクラスを持っています(そしてPygameのカップルも)、最近、それらの多くでパターンに気づきました。

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

...コンストラクターが行った唯一のことは、一連の位置引数をまったく同じ名前のデータメンバーに転送することであり、計算やその他の関数呼び出しを実行しません。

この繰り返しは不要であり、変化時に人為的な誤りが生じやすいように思えます。

これは私にここで質問に導きます:そのようなものを自動的に生成することは可能ですか __init__(self, ...) 機能、できればcpython bytecodeを使用したり、テンプレート/マクロを使用してソースファイル自体を変更することなく機能しますか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top