Skip to main content
 首页 » 编程设计

python之当 python 导入时,它是否在 'import' 语句中导入名称

2025年05月04日9leader

我对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 时执行。后续导入仅复制名称和引用。

话虽如此,不要导入 *。