[英]Import a class variable from another module
我試圖從另一個模塊導入一個類中的變量:
import module.class.variable
# ImportError: No module named class.variable
from module.class import variable
# ImportError: No module named class
from module import class.variable
# SyntaxError: invalid syntax (the . is highlighted)
我可以執行以下操作,但我更願意只導入我需要的一個變量。
from module import class as tmp
new_variable_name = tmp.variable
del tmp
這可能嗎?
variable = __import__('module').class.variable
你不能這樣做 - import 語句只能從模塊或子模塊中引入元素 - 類屬性雖然可以使用用於子模塊訪問的相同點語法進行尋址,但不能單獨導入。
你可以做的是:
from mymodule import myclass
myvar = myclass.myvar
del myclass
無論哪種方式,無論何時使用from module import anything
語法,都會讀取和處理整個模塊。例外是
from module.submodule import submodule
,其中,如果子模塊本身不需要整個模塊,則只處理子模塊。
(因此,即使在我上面的解決方法中, mymodule
也會被讀取和執行 - 它無法在創建 import 語句的全局命名空間中訪問,但它及其所有組件在sys.modules
字典中都是可見的。
按照這兩個步驟
從模塊導入類
from Module import Class
將新變量分配給類中的現有變量
var1=Class.var1
var2=Class.var2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.