Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 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
setattr(A, 'foo', 10)
是的!这可以通过getattr和setattr的组合来完成。
setattr(A, 'foo', 10) getattr(A, 'foo') // Returns 10
仅供参考 - 您可以使用以下命令从整个对象的成员生成字典vars():
vars()
class A: pass A.foo = 10 A.bar = 'hello' a = A() b = vars(a) print(b['bar']) # prints hello