Python PyCharm中未解析的属性错误

Python PyCharm中未解析的属性错误,python,monkeypatching,Python,Monkeypatching,我创建了一个python类,例如: class A(): def foo(self): #Does something def bar(self): #Does some work A.bar = bar 根据我的理解,这应该会给这个类增加一个条。 但是当我在另一个类中执行此操作时,我得到了提到的错误 global a a=A() a.bar() # this gives the error 谢谢。您的酒吧功能在课堂之外。更正它: class A()

我创建了一个python类,例如:

class A():

    def foo(self):
        #Does something

def bar(self):
    #Does some work

A.bar = bar
根据我的理解,这应该会给这个类增加一个条。 但是当我在另一个类中执行此操作时,我得到了提到的错误

global a

a=A()

a.bar() # this gives the error

谢谢。

您的酒吧功能在课堂之外。更正它:

class A():

    def foo(self):
        print('foo')

    def bar(self):
        print('bar')

global a
a = A()
a.bar()

OP所做的全部工作是将一个最初未分配给该类的函数分配给该类Yes,正如@dabadaba所说,我需要实例和调用位于另一个类中。这段代码在我的系统上运行得非常好。没有未解决的属性错误,它使用A.bar=barI将方法添加到类中。我知道您可以对对象执行此操作,但也可以对类执行此操作吗?“我对此不太肯定。”dabadaba很抱歉回复得太晚,显然这是可以做到的,请看我正在看的问题和教程。我还使用同一类中的实例运行并验证了代码。但这是不同的,因为具有该名称的方法已经存在。显然,如果没有定义,就不能将外部函数中定义了新行为的bar分配给。@dabadaba我相信monkeypatching就是为了这个目的而做的,正如我在前面的评论中所说,如果所有内容都保存在同一个文件中,代码不会给出错误。