如何在python程序中全局共享变量?

时间:2015-07-22 15:01:34

标签: python python-2.7 variables python-click

我正在开发一个有配置的程序。我需要为测试和程序的正常运行使用不同的配置。

我使用a脚本管理所有软件和测试,所有测试都在b下(例如:manage.pypython manage.py test ...,...)

选择我在配置的python manage.py test all中所做的配置:

python manage.py test db

在我从此文件导入配置后。

但是有时候测试运行器在argv中占据第一位,因此测试在argv [2]中,或者有时我通过直接启动脚本而不是__init__.py来运行测试。

我的问题是,我可以通过哪些方式在整个代码库中共享变量?

感谢。

1 个答案:

答案 0 :(得分:3)

您可以从配置类中完全提取确定配置,并让脚本接受要执行的配置路径的CLI arg。这将允许使用任何配置。

python manage.py test --config=import.path.to.settings

然后你必须将config映射到加载实际模块。 Django使用他们的settings文件完成了这个问题,你可以参考它来了解实现细节

此外,我建议使用argsparse,这样您就不必处理sys.argv[1]它提供的类型强制,文档生成,位置和关键字arg支持