У меня есть два файла module.py
и main.py
питон: Импорт функции со ссылками на глобальную область видимости
В module.py
У меня есть функция, которая использует константу, определенную вне его сферы.
#module.py
def add(x):
s = x + const
return s
if __name__ == '__main__':
const = 2
print(add(2))
Он печатает 4
как выход при работе напрямую.
В main.py
у меня есть:
#main.py
import module as m
const = 2
print(m.add(2))
Это дает ошибку: NameError: name 'const' is not defined
Есть ли способ сделать m.add() ищет const
в main.py
глобальном масштабе? Я бы не хотел передавать const
в add()
в качестве функциональной переменной.
Короткий ответ: Нет, это не возможно. Вам либо нужно сделать 'const' членом модуля (например,' m.const = 2'), либо передать его функции. – poke
Каков ваш реальный прецедент? Почему бы вам не передать значение функции? Вот как должны работать функции. –
Я хочу отделить свои функции модели от симулятора. Некоторые из этих функций используют одни и те же константы, которые я хочу объявить только один раз. Тем не менее, я хотел бы иметь возможность изменить их в файле моделирования. 'm.const' делает то, что я хочу – Ricevind