6

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
4

3 に答える 3

14

使用setattr

setattr(A, 'foo', 10)
于 2012-12-26T19:32:41.043 に答える
5

はい!これは、 getattrsetattrの組み合わせで実行できます。

setattr(A, 'foo', 10)
getattr(A, 'foo') // Returns 10
于 2012-12-26T19:36:05.753 に答える