Python:NameError:未定义全局名称"foobar" [英] Python: NameError: global name 'foobar' is not defined
问题描述
我写了以下课程:
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()
,但是在脚本中切换函数定义的顺序没有什么区别.
The logic is nonsensical - ignore it. What I am trying to so is to call an instance method from another instance method - and I am getting a NameError
. I originally thought that this was due to foo()
calling foobar()
before it had been defined - but switching the order of the function definitions in the script made no difference.
是否有人导致此错误,以及如何解决该错误?
Does anyone what's causing this error, and how to fix it?
推荐答案
Python不会自动将代码范围限定在本地类中.您需要告诉它.
Python doesn't scope code to the local class automatically; you need to tell it to.
pp = self.foobar(arg1, arg2)
http://docs.python.org/tutorial/classes.html
这篇关于Python:NameError:未定义全局名称"foobar"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!