是否可以用类覆盖模块?
让我解释,
这是文件系统
foo
|-- bar
| |-- __init__.py
| |-- config.py
|-- __init__.py
是否可以覆盖config.pyfromfoo.bar.__init__.py以便每当有人导入时foo.bar.config他们正在导入覆盖config而不是版本 from config.py?
如果是,我该怎么做?
Ps:我将根据某些条件覆盖 config.py。
是否可以用类覆盖模块?
让我解释,
这是文件系统
foo
|-- bar
| |-- __init__.py
| |-- config.py
|-- __init__.py
是否可以覆盖config.pyfromfoo.bar.__init__.py以便每当有人导入时foo.bar.config他们正在导入覆盖config而不是版本 from config.py?
如果是,我该怎么做?
Ps:我将根据某些条件覆盖 config.py。
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