簡體   English   中英

python導入時,是否在“ import”語句中導入名稱?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM