0

「klass」という名前のクラスを持つ、階層的な「folder2」内に「module」という名前のモジュールがあるとします。

角括弧構文のようにクラスを取得するにはどうすればよいですか?

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

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

1 に答える 1

2

この行を置き換えます:

sbs_module = module['klass']

この行で:

sbs_module = module.klass

klassその理由は、キーで変数にアクセスするのではなく、ドット表記を使用してモジュール変数(この場合は)という名前の変数を参照する必要があるためです。

または、2つの異なる表記を使用できます。

  • キー別:

    sbs_module = vars(module)['klass']
    
  • 属性別:

    sbs_module = getattr(module, 'klass')
    

ただし、どうしても必要な場合を除いて、お勧めしません。

于 2012-11-08T02:44:01.610 に答える