Python では、定義後にクラスにメンバーを追加できるという事実をよく知っています。しかし、文字列の内容を使用してメンバーに名前を付ける方法はありますか?
たとえば、次のようにします。
class A:
pass
A.foo = 10
a = A()
print a.foo
しかし、これを行う方法はありますか:
name = "foo"
class A:
pass
A.[some trick here(name)] = 10
a = A()
print a.foo
使用setattr:
setattr(A, 'foo', 10)
はい!これは、 getattrとsetattrの組み合わせで実行できます。
setattr(A, 'foo', 10)
getattr(A, 'foo') // Returns 10