重写python模块
是否可以用类重写模块 让我解释一下 这是文件系统重写python模块,python,overriding,python-module,Python,Overriding,Python Module,是否可以用类重写模块 让我解释一下 这是文件系统 foo |-- bar | |-- __init__.py | |-- config.py |-- __init__.py 是否可以从foo.bar.\uuuu init\uuuuu.py覆盖config.py,这样每当有人导入foo.bar.config时,他们导入的都是覆盖的config,而不是从config.py导入的版本 如果是,我怎么做 Ps:我将根据某些条件重写config.py。只需在foo/bar/\uuu init\u
foo
|-- bar
| |-- __init__.py
| |-- config.py
|-- __init__.py
是否可以从foo.bar.\uuuu init\uuuuu.py
覆盖config.py
,这样每当有人导入foo.bar.config
时,他们导入的都是覆盖的config
,而不是从config.py
导入的版本
如果是,我怎么做
Ps:我将根据某些条件重写config.py。只需在
foo/bar/\uuu init\uuuuuuuuuuuuuuuuuuuuuuupy
中定义一个名为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
只需在
foo/bar/\uuuuu init\uuuuu.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
如果你可以修改
foo/bar/\uuu init\uuuuuuuuuuuuuuuuupy
,为什么你不能简单地更新foo/bar/config.py
?如果你可以修改foo/bar/\uuuuuuuuuuuuuuuuuuuuu init.py
,为什么你不能简单地更新foo/bar/config.py
?