2012-11-08 26 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

相关问题