我正在尝试从另一个级别的模块中导入一些类。我可以输入所有类,但我试图动态地输入
如果我做:
from ..previous_level.module import *
raise: SyntaxError: import * only allowed at module level
Run Code Online (Sandbox Code Playgroud)
来自 myapp 文件夹的相同内容:
from myapp.previous_level.module import *
raise: SyntaxError: import * only allowed at module level
Run Code Online (Sandbox Code Playgroud)
所以我认为:
my_classes = ['Class_Foo', 'Class_Bar']
for i in my_classes:
from ..previous_level.module import i
raise: ImportError: cannot import name 'i'
Run Code Online (Sandbox Code Playgroud)
并且:
my_classes = ['Class_Foo', 'Class_Bar']
for i in my_classes:
__import__('myapp').previous_level.module.y
raise: AttributeError: module 'myapp.previous_level.module' has no attribute 'y'
Run Code Online (Sandbox Code Playgroud)
我试过string format
,getattr()
,__getattr__
但没有成功。
以这种方式导入是不可能的,或者我做错了什么?