だから私は、次のような「from x import x」ステートメントの束を変えようとしています:
from class_foo import class_foo
ダイナミックなものに。ディレクトリへのパスを渡して、そこにあるすべてのモジュールをインポートしようとしています。
def dynamicImport(dirPath):
filez = os.listdir(dirPath)
for file in filez:
if "class" in file:
oname = file[:-3] #cut off the file extension, trivial
imp_statement = "from " + oname + " import " + oname
#when I print imp_statement, I can verify it's being concatenated correctly
exec(imp_statement)
この関数を実行してパスを渡すと、ステートメント文字列が適切に作成され、エラーは発生しませんが、後でインポートされたオブジェクトの 1 つにアクセスしようとすると、次のようになります。
foo = class_foo()
NameError: name 'class_foo' is not defined
明らかに私は何か間違ったことをしています。どんな助けでも大歓迎です。