Python: NameError: глобальное имя 'foobar' не определено
Я написал следующий класс:
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 ответ
Решение
Python не распространяет код на локальный класс автоматически; Вы должны сказать это.
pp = self.foobar(arg1, arg2)