Подтвердить что ты не робот

Python NameError: имя не определено

У меня есть python script, и я получаю следующую ошибку:

Traceback (most recent call last):
  File "C:\Users\Tim\Desktop\pop-erp\test.py", line 1, in <module>  
  s = Something()
  NameError: name 'Something' is not defined

Вот код, который вызывает проблему:

s = Something()
s.out()

class Something:
    def out():
        print("it works")

Это выполняется с помощью Python 3.3.0 под Windows 7 x86-64.

Почему класс Something не может быть найден?

4b9b3361

Ответ 1

Определите класс перед его использованием:

class Something:
    def out(self):
        print("it works")

s = Something()
s.out()

Вам нужно передать self в качестве первого аргумента ко всем методам экземпляра.

Ответ 2

Вы должны определить класс перед созданием экземпляра класса. Переместите вызов Something в конец script.

Вы можете попытаться поставить корзину перед лошадью и вызвать процедуры до того, как они будут определены, но это будет уродливый взлом, и вам придется катиться самостоятельно, как определено здесь:

Сделать определение функции в файле порядка на питоне независимым