NameError при вызове метода из другого модуля в Python - PullRequest
0 голосов
/ 27 июня 2018

У меня есть два модуля в Python 3 - main.py и gui.py, которые находятся в одном каталоге. Мой код указан здесь:

main.py:

import gui

if __name__ == "__main__":
    interface = gui.Gui()
    interface.func1()

def foo():
    interface.func2()

gui.py:

import main

class Gui:
    def func1(self):
        main.foo()
    def func2(self):
        pass

При вызове main.foo() из gui.py я получаю следующее исключение:

NameError: name 'interface' is not defined

Если я переместлю объявление foo() в начало файла main.py, а затем вызову его из main.py, я не получу это исключение.

Почему эта ошибка возникает при вызове main.foo() из gui.py?

Примечание. Это мой первый вопрос о StackOverflow, поэтому извините, если он не очень хорошо написан. Пожалуйста, скажите мне, как я мог бы это улучшить.

...