簡體   English   中英

從另一個模塊導入類變量

[英]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字典中都是可見的。

按照這兩個步驟

  1. 從模塊導入類

    from Module import Class

  2. 將新變量分配給類中的現有變量

    var1=Class.var1

    var2=Class.var2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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