2012-11-08 63 views
0

讓我們假設你有一個名爲「module」的模塊在僱傭主體「folder2」中,並且有一個名爲「klass」的類。如何從Python中的前一個__import__中獲取類對象/實例?

我怎樣才能得到像方括號語法的類?

module = __import__('folder1.folder2.module', fromlist='*') 
sbs_module = module['klass'] 

#lets say we print a value from the method getValue 
print sbs_module.getValue() 

回答

2

替換此行:

sbs_module = module['klass'] 

這一行:

sbs_module = module.klass 

其原因是,你需要參考模塊變量(名爲klass這種情況下,變量)通過使用點符號,而不是通過按鍵訪問變量。

或者您可以使用兩種不同的符號:

  • 的關鍵:

    sbs_module = vars(module)['klass'] 
    
  • 的屬性:

    sbs_module = getattr(module, 'klass') 
    

,但我不建議這樣做,除非絕對有必要。

+0

我做到了按屬性: 模塊= __import __( 'folder1.folder2.module',fromlist裏= '*') 克拉斯= GETATTR(模塊, '克拉斯') 打印klass.getValue() 和它的工作, 謝謝。 – Uuid

相關問題