我对python的导入机制不是很清楚。让我感到困惑的一件事是:当 python 导入模块时,它是否也导入了在那里导入的名称。这是代码:
# A.py
def A_func():
pass;
# B.py
from A import *;
def B_func():
pass;
# C.py
from B import *;
def C_func():
# I can use B_func, OK, no problem.
# I can use A_func here, is import recursive?
如果 python 递归导入,我的代码是不是不好的做法?如果我添加
会发生什么from A import *;
到 C.py?导入两次会导致任何开销吗?还是我应该避免“from xx import *”而只导入所需的名称?
谢谢!
请您参考如下方法:
代码仅在第一次为模块调用 import 时执行。后续导入仅复制名称和引用。
话虽如此,不要导入 *。
