Python:NameError:全局名称'foobar'未定义。

31

我已经编写了以下类:

class myClass(object):
    def __init__(self):
        pass

    def foo(self, arg1, arg2):
        pp = foobar(self, arg1, arg2)
        if pp:
            return 42
        else
            return -666


    def foobar(self, arg1, arg2):
        if arg1 == arg2:
            return 42
        else:
            return None
逻辑毫无意义-请忽略。我正在尝试从另一个实例方法调用实例方法,并且出现了一个NameError。我最初认为这是由于foo()在定义之前调用了foobar()导致的,但是在脚本中切换函数定义的顺序并没有改变任何事情。有人知道是什么原因导致了这个错误,以及如何修复吗?
1个回答

53

2
你的意思是:__pp = self.foobar(arg1, arg2)__? - mouad
1
@Glenn:谢谢。我怀疑这是一个作用域问题。也感谢你提供的链接。我想现在是阅读文档的时候了! - skyeagle
单态性:实际上,你是正确的,应该是 self.foobar(arg1, arg2)。谢谢指出。 - skyeagle
@seriyPS:不,那就是super的作用。 - Glenn Maynard
@GreenMatt 看看这个:https://dev59.com/gFPTa4cB1Zd3GeqPkY0X - sami
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接