用于在整个应用程序中共享配置的Python模式
|
我有一个包含基本应用程序的应用程序,其中包含几个模块。基本应用程序将参数文件读入配置哈希,我想在所有模块之间共享它。
目前,我正在将\'parent \'对象传递给模块,然后这些模块正在执行诸如self.parent.config之类的操作来获取配置。
但是,由于模块层次结构有多个级别,因此我发现自己正在执行诸如self.parent.parent.config之类的事情,这种情况似乎开始变得不好。
在应用程序及其模块之间共享配置对象有哪些更好的模式?我正在考虑使用一个\'config \'模块,该模块基本上创建一个全局配置变量,该变量可以由基本应用程序设置,然后由其他模块导入和访问,但是我不确定是否使用像这样的全局变量是一种不好的做法由于其他原因。
我是Python的新手,所以很好=)
没有找到相关结果
已邀请:
4 个回复
熊融炭臀陛
并有一个全局配置模块 我的评论摘录: 您总是可以为奇怪的情况添加特殊规则,只需说“ѭ1”即可。 如果您希望配置模块可以按层次结构划分为子类(如我的其他答案所述),则可以将配置表示为类,或者可以使用
模块进行浅表复制和修改,也可以使用\ “配置字典\”,例如:
您所处的范围并不重要。
妒垮
粳饶瓢部
模块是您导入的.py文件,如下所示:
您实例化的所有类似乎不太可能希望访问全局配置。但是,如果您确实需要应用程序中的所有内容才能访问某些全局参数,则可以将它们放在自己的
模块中:
然后从任何模块或任何对象或任何地方开始,只要您执行了
,您就可以说
另外,如果您希望对象的较大层次结构都共享对同一属性的访问权限,则无需通过手动设置ѭ11来引用它。只要使用继承,就可以执行以下操作:
呈辖玫割善