是否可以使用类覆盖模块?
让我解释一下,
这是文件系统
foo
|-- bar
| |-- __init__.py
| |-- config.py
|-- __init__.py
是否可以覆盖config.py
中的foo.bar.__init__.py
,以便每当有人导入foo.bar.config
时,他们都会导入覆盖config
而非config.py
的版本?< / p>
如果是,我该怎么做?
Ps:我将根据某些条件覆盖config.py.
答案 0 :(得分:4)
只需在foo/bar/__init__.py
中定义一个名为config
的类,即可导入该类。但是你为什么不改变config.py
?
In [4]: !ls foo
__init__.py bar/
In [5]: !ls foo/bar
__init__.py config.py
In [6]: !cat foo/bar/__init__.py
class config(object):
pass
In [7]: from foo.bar import config
In [8]: type(config)
Out[8]: type
$ echo "" > foo/bar/__init__.py
$ ipython
In [1]: from foo.bar import config
In [2]: type(config)
Out[2]: module