복붙노트

[PYTHON] 파이썬 : NameError : 전역 이름 'foobar'가 정의되지 않았습니다.

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를 얻고 있습니다. 나는 이것이 원래 정의되기 전에 foobar ()를 호출하는 foo ()에 의한 것이라고 생각했지만, 스크립트에서 함수 정의의 순서를 바꾸어도 아무런 차이가 없었다.

이 오류의 원인과 해결 방법은 무엇입니까?

해결법

  1. ==============================

    1.파이썬은 코드를 로컬 클래스에 자동으로 범위 지정하지 않습니다. 당신은 그것에 말할 필요가 있습니다.

    파이썬은 코드를 로컬 클래스에 자동으로 범위 지정하지 않습니다. 당신은 그것에 말할 필요가 있습니다.

    pp = self.foobar(arg1, arg2)
    

    http://docs.python.org/tutorial/classes.html

  2. from https://stackoverflow.com/questions/4068785/python-nameerror-global-name-foobar-is-not-defined by cc-by-sa and MIT license