Python: как вызвать функцию в другом файле с циклическим импортом
Я делаю текстовую напольную игру для учебных целей. Я хочу, чтобы все функции перемещения были в отдельном файле Python, но у меня возникли проблемы с их совместной работой.
У меня основная игра называется floors.py
и файл карты floormap.py
,
Я могу импортировать и запускать функции из floormap.py
Внутри floors.py
отлично хорошо
Но я не знаю, как вернуться к floors.py
функции после запуска floormap.py
функции. Вот пример ниже. Когда я запускаю это, я получаю следующую ошибку в терминале:
NameError: global name 'first_hall_1' is not defined
Я получил это работает с помощью:
from floormap import first_hall_1
Но я мог бы найти способ заставить функции снова вызываться в исходном файле.
Floors.py:
import floormap
def first_hall_object():
grab = raw_input("Enter Command > ")
backward = ['back', 'Back', 'Backward', 'backward']
if any (s in grab for s in backward):
first_hall_1()
def walkin_hall():
print "whatever"
floormap.py:
import floors
def first_hall_1():
print "You are in front of the door again. It is locked."
walkin_hall()
1 ответ
Решение
Вы должны пройти отбор first_hall_1
с именем модуля floormap
,
def first_hall_object():
grab = raw_input("Enter Command > ")
backward = ['back', 'Back', 'Backward', 'backward']
if any (s in grab for s in backward):
floormap.first_hall_1() # <-----
То же самое для walkin_hall()
вызов:
def first_hall_1():
print "You are in front of the door again. It is locked."
floors.walkin_hall()