【发布时间】:2017-03-17 13:01:56
【问题描述】:
我创建了一个 python 类,例如:
class A():
def foo(self):
#Does something
def bar(self):
#Does some work
A.bar = bar
根据我的理解,这应该在类中添加 bar。 但是当在不同的类中执行此操作时,我会收到提到的错误
global a
a=A()
a.bar() # this gives the error
谢谢。
【问题讨论】:
-
我知道你可以对一个对象这样做,但对一个类也可以?我对此不太乐观。
-
但不一样,因为同名的方法已经存在。显然,如果未定义
A,您不能只将bar(在外部函数中定义的新行为)分配给它。 -
@dabadaba 我相信这就是monkeypatching的作用,正如我在之前的评论中所说,如果所有内容都保存在同一个文件中,代码不会出错。
标签: python monkeypatching