假设我有一个Python类,我想添加一个额外的属性。
之间有什么区别吗?
import path.MyClass
MyClass.foo = bar
并使用类似的东西:
import path.MyClass
setattr(MyClass, 'foo', bar)
如果没有,为什么人们似乎做第二次而不是第一次呢? (例如,这里http://concisionandconcinnity.blogspot.com/2008/10/chaining-monkey-patches-in-python.html)
答案 0 :(得分:11)
这些语句是等价的,但是可以使用setattr,因为它是两者中最动态的选择(使用setattr可以使用变量作为属性名称。)