В моих проблемах у меня есть код питона, который будучи запущен пользователем, как:Как использовать глобальную переменную в python?
# file main.py
import sys
import mymodule
config = sys.argv[1]
который импортирует другой модуль, содержащие функции, классы и т.д., как
# module.py
def check_config():
# do something with the content of 'config'
class Module(object):
# does something with the content of 'config'
Как я могу получить доступ к значение 'config' от module.py
? Должен ли я использовать здесь глобальную переменную? Или существует более сложный, питонический способ решения этой проблемы?
Кроме того, я не хочу, чтобы определить аргумент «конфигурация» для каждой функции и класса, я использую в других модулях ...
Далее замечание: main.py
импортирует другие модули, а не наоборот ...
Автобус, как я уже упоминал, может иметь десятки классов и сотни функций. Ваш подход не кажется очень «питоническим». – Alex
@Alex Передача параметра - это чистый способ получить функцию для получения этого параметра. Использование 'global' будет неясным из-за того, что он менее явный. Быть явным * является * Pythonic. – SuperBiasedMan
Что вы думаете о описанном здесь подходе: http://effbot.org/pyfaq/how-do-i-share-global-variables-across-modules.htm – Alex