[英]When python does import, does it import names in 'import' statement?
我對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
被調用的模塊。 后續導入僅復制名稱和引用。
話雖如此, 不要導入*
。
您只能在C.py中使用B_func。 您將無法訪問A_Func。 如果要在A中使用定義,則必須從A導入。編輯:對不起,我不好。 我的理解不正確
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.