Dav*_*gac 16 python module python-import
在我的应用程序中,我在包中使用模块example调用examplemod.
我的应用:
from example import examplemod
examplemod.do_stuff()
Run Code Online (Sandbox Code Playgroud)
它会example像这样导入另一个模块.
examplemod.py:
from example import config
# uses config
# then does stuff
Run Code Online (Sandbox Code Playgroud)
config 使用常数.
config.py:
CONSTANT = "Unfortunate value"
Run Code Online (Sandbox Code Playgroud)
当我examplemod在我的应用程序中使用它时CONSTANT = "Better value",我想覆盖这个常量(设置它),我不想修改底层模块,所以我不必维护自己的包.我怎样才能做到这一点?
var*_*tec 18
是的,但它只能按预期使用模块的完全限定访问路径:
import example
example.examplemod.config.CONSTANT = "Better value"
example.examplemod.do_stuff()
Run Code Online (Sandbox Code Playgroud)
谢谢大家的答案.他们指出了正确的方向,尽管他们都没有像书面那样工作.我最后做了以下事情:
import example.config
example.config.CONSTANT = "Better value"
from example import examplemod
examplemod.do_stuff()
# desired result!
Run Code Online (Sandbox Code Playgroud)
(另外,我正在向模块维护者提交补丁,使CONSTANT成为可配置选项,所以我不必这样做,但需要同时安装库存模块.)