6

假设我有一个要添加额外属性的 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

4

1 回答 1

11

这些语句是等效的,但可能会使用 setattr,因为它是两者中最动态的选择(使用 setattr,您可以使用变量作为属性名称。)

请参阅:http ://docs.python.org/library/functions.html#setattr

于 2009-06-08T11:57:28.660 回答