私はいくつかの属性を持つオブジェクトのリストを入力として受け取るPythonをデバッグしています。Pythonで匿名オブジェクトを作成することはできますか?
いくつかのテスト値をハードコードしたいと思います。たとえば、 "foo"属性がいくつかの番号に設定されている4つのオブジェクトのリストを考えてみましょう。
これより簡潔な方法はありますか?
x1.foo = 1
x2.foo = 2
x3.foo = 3
x4.foo = 4
myfunc([x1, x2, x3, x4])
理想的には、私はちょうどのようなものと言っできるようにしたいと思います:
myfunc([<foo=1>, <foo=2>, <foo=3>, <foo=4>])
を(もちろん、それは作らアップの構文である。しかし、実際に動作することと同様のものがあります。?)
注:これは決してチェックインされません。これは単なるデバッグコードです。読みやすさや保守性について心配しないでください。
しかし、これらをたくさん作成する場合は、新しい辞書を作成してすべてのエントリをコピーするのではなく、指定した辞書を使用して時間とメモリを節約できます。しかし、本当に重要ではありません。 –
よく、私は主観的かもしれませんが、私は実質的な単純化を見ません。はい、あなたは__init__を使用して更新しますが、あなたはまだ__dict__を手伝っています。 – Tetha
あなたは正しいですが、大幅な簡素化はありません。それはちょうど短く、__new__を使用しません、それだけです。 – DzinX