自動化されたPythonコンストラクター
-
30-10-2019 - |
質問
私は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を使用したり、テンプレート/マクロを使用してソースファイル自体を変更することなく機能しますか?
正しい解決策はありません
所属していません StackOverflow