配列内のモジュール名のリストがあります。すでにインポートされているクラスからこれらすべてのモジュールをインポートしたいと思います。TestModuleからは使用できないようです__import __(name)
どうやってやるの?これが私が持っているものです:
import MainModule
arr = \
['Module1', 'Module2', 'Module3', 'Module4', 'Module5']
for string in arr:
# Use FROM to import the sub classes somehow
from MainModule __import__(string)
もちろん、Pythonではそれができません。
import MainModule
arr = \
['Module1', 'Module2', 'Module3', 'Module4', 'Module5']
for string in arr:
globals()[string] = getattr(MainModule, string)
変更globals()
はあまりエレガントではありませんが、役立つかもしれません。
より良い
modules = {string: getattr(MainModule, string) for string in arr}
そして、modules
あなたが望むものを何でもします、例えば
class MyModulesHolder(dict):
pass
modules = MyModulesHolder()
modules.__dict__ = modules
modules.update({string: getattr(MainModule, string) for string in arr})
あなたができるようにmodules.Module2.whatever()
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加