【发布时间】:2021-03-30 10:08:37
【问题描述】:
当使用__getattr__ 从模块导入对象时,我正在尝试运行一些逻辑,如下所述:__getattr__ on a module
...但逻辑运行两次。为什么会发生这种情况,我该如何阻止它?
main.py
from test import x, y
test.py
def __getattr__(name: str):
print(f"Imported {name}")
【问题讨论】:
-
请将您的代码和输出作为文本发布,而不是屏幕截图。
-
您是否尝试在通话期间检查回溯?
-
@o11c 没有回溯,因为代码执行成功。当我在本地复制它时,以详细模式运行 python 不会显示任何信息。检查 cProfile 显示 5 次调用
test.__getattr__:5 0.000 0.000 0.000 0.000 test.py:1(__getattr__) -
@C.Nivs 骗子展示了如何检查回溯。
标签: python python-3.x python-module getattr