我很少使用Python,所以也许我不知道一些废话。今天的演讲中有人说他们想避免“动态分配属性”,但没有提供示例。
我知道动态创建类的属性意味着什么,但是动态赋值意味着什么?这似乎暗示 python 中有静态赋值,但 python 是动态类型语言。
通常,这意味着属性本身作为字符串动态创建,然后分配给实例:
class Foo:
... pass
...
>>> foo = Foo()
>>> attr = "some_dynamically_created_string"
>>> setattr(foo, attr, 42)
>>> foo.some_dynamically_created_string
42