一尘不染

函数名称在python类中未定义

python

我对python相对较新,并且在命名空间方面遇到一些问题。

class a:
    def abc(self):
        print "haha" 
    def test(self):
        abc()

b = a()
b.abc() #throws an error of abc is not defined. cannot explain why is this so

阅读 156

收藏
2020-12-20

共1个答案

一尘不染

由于test()不知道是谁abc,因此NameError: global name 'abc' is not defined您看到的味精应该在调用时发生b.test()(调用b.abc()很好),请将其更改为:

class a:
    def abc(self):
        print "haha" 
    def test(self):
        self.abc()  
        # abc()

b = a()
b.abc() #  'haha' is printed
b.test() # 'haha' is printed
2020-12-20