У меня есть основной файл сценария, назовем его main.py, и у меня есть файл модуля, который находится в поддиректории «module /», назовем его mod.py (module/mod.py)Импорт модулей в python из разных папок
директориии дерево, как это:
-main.py
-module/
|
|---mod.py
Теперь у меня есть глобальную переменную в main.py, назовем его «а» и он равен 1. у меня есть функция в mod.py которой должен печатать глобальную переменную a.
main.py:
import sys
sys.path.append("module/")
from mod import *
global a
a = 1
print_it()
модуль/mod.py:
from main import *
def print_it():
global a
print a
При запуске сценария main.py, я получаю:
NameError: name 'print_it' is not defined
Почему?
потому что в 'module /' папке 'main.py' нет файла' main.py' –
Это не сработает. в 'main' вы импортируете' mod', в 'mod' вы снова импортируете' main'. И проблема здесь. 'mod' не был полностью импортирован. И 'print_it' пока не создан. – qvpham
Что происходит, когда вы меняете эту строку в 'main.py':' from mod import * 'to' import mod'? –