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