我有一个应用程序,它包含一个基础应用程序,可以引入多个模块.基础应用程序将参数文件读入配置哈希,我想在所有模块中共享它.
目前,我将"父"对象传递给模块,然后这些模块正在执行self.parent.config之类的操作来获取配置.
但是,由于模块层次结构有几个层次,我发现自己做的事情就像self.parent.parent.config,它开始看起来很糟糕.
在应用程序及其模块中共享配置对象有哪些更好的模式?我正在考虑有一个'config'模块,它基本上创建一个全局配置变量,可以由基础应用程序设置,然后由其他模块导入和访问,但我不确定是否使用像这样的全局变量对其他原因.
我是Python的新手,所以很好=)
里德·科普西 (Reed Copsey) 对以下 SO 问题做出了回应:
我更喜欢创建一个用于设置查询、加载和保存的界面。通过使用依赖注入,我可以将其注入到需要它的每个组件中。
有人可以给出这样的代码示例吗?例如,电子邮件客户端的设置类和 FTP 客户端的另一个设置类,基于这个可以是 DI 的“接口”。我知道您可以对应用程序中的所有设置进行全局单例(我目前正在这样做),但是 Reed 的这个建议很有趣,并且想尝试一下。