我见过人们使用猴子修补来设置模块上的选项,例如:
import mymodule
mymodule.default_img ="/ my/file.png"
mymodule.view_default_img()
例如,Django对整个Django应用程序都有settings.py,而且它总是会对我产生一些影响.
管理模块配置设置的其他方法有哪些?什么推荐?似乎通常没有很好的方法来设置模块级配置.
显然,完全避免配置是目前最优选的,通常最好使用类,或者将参数传递给函数.但有时你无法避免某种类型的设置,有时为了方便起见全局模块范围的设置确实有意义(例如,Django的模板系统 - 必须为每个模板指定基本路径一场噩梦,绝对不是很好的DRY代码).
一种选择是ConfigParser模块。您可以将设置放在非 python 配置文件中,并让每个模块从中读取其设置。另一种选择是在每个模块中都有一个配置方法,客户端代码也可以传递它的参数。
# foo.py
setting1 = 0
setting2 = 'foo'
def configure(config1, config2):
global setting1, setting2
setting1 = config1
setting2 = config2
Run Code Online (Sandbox Code Playgroud)
然后在导入模块中,
import foo
foo.configure(42, 'bar')
Run Code Online (Sandbox Code Playgroud)
就我个人而言,我认为最好的方法是使用像 django.settings 这样的设置文件。
| 归档时间: |
|
| 查看次数: |
1402 次 |
| 最近记录: |