我正在编写一些需要来自下游包层次结构的数据的代码。考虑以下项目结构:
├── app/
│ ├── main.py
│ ├── lib.py
│ └── subpck/
│ └── module.py
以及以下代码:
# lib.py
some_instance = SomeClass()
# subpck.module
from ..lib import some_instance
some_instance.a = 'abc'
# main.py
from .lib import some_instance
print(some_instance.a)
这里的重点是main.py
不导入subpck.module
,所以后者的代码没有运行。但是,我已经成功使用runpy
inmain.py
运行subpck.module
并获得了预期的结果。
我的问题是这样的:
如果我能以某种方式弄清楚如何封装runpy
in的使用SomeClass
,这样做安全吗?
我一直在阅读runpy
文档,但如果我遗漏了什么,我会很紧张。我也没有听说这对于可能在生产中使用的代码是否是一个很大的“禁忌”。
任何帮助表示赞赏。