1 python python-import brownie
我正在努力实现:
from X import Y
Run Code Online (Sandbox Code Playgroud)
其中 Y 是仅在运行时才知道的模块的字符串名称。
我尝试过使用
module = importlib.import_module(Y, X)
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。我也不知道模块的路径,因为它仅在运行时存在于模块 Brownie 中,然后被删除。
非常感谢帮助。
你几乎明白了,除了第二个参数是import_module包名称,而不是你想要的属性。当你想要一个模块的属性时,你必须首先运行整个模块的代码,因为 python 无法提前预测哪些行会产生副作用。
所以首先导入模块:
X = importlib.import_module('X')
Run Code Online (Sandbox Code Playgroud)
然后你需要从模块中获取属性:
Y = getattr(module, 'Y')
Run Code Online (Sandbox Code Playgroud)
当然,您可能不想创建临时变量X,所以您可以这样做
Y = getattr(importlib.import_module('X'), 'Y')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3178 次 |
| 最近记录: |