2014-02-25 43 views
7

我試圖找到一種方法來訪問模塊變量的名稱,但還沒有發現任何東西。我使用的是現在的事情是:python通過名稱獲取模塊變量

var = eval('myModule.%s' % (variableName)) 

但它的模糊,打破IDE錯誤檢查(即日食/ PyDev的進口Mymodule中被標記爲未使用,而它的需要上面的行)。有沒有更好的方法來做到這一點?可能是模塊內置函數,我不知道?

+2

如果您提供示例代碼,請使用'getattr' .. –

+0

@AshwiniChaudhary我會接受此答案。在網絡上真的沒有這樣的例子。 – ducin

回答

17
import mymodule 

var = getattr(mymodule, variablename) 
3

getattr(themodule, "attribute_name", None)

第三種說法是,如果屬性不存在默認值。

https://docs.python.org/2/library/functions.html#getattr

返回對象的指定屬性的值。名稱必須是字符串。如果字符串是對象屬性之一的名稱,則結果是該屬性的值。例如,getattr(x,'foobar')等同於x.foobar。如果指定的屬性不存在,則返回默認值(如果提供),否則引發AttributeError。