【发布时间】:2012-07-05 13:00:32
【问题描述】:
我已经使用 Python 一周了,但我遇到了动态导入的问题。 我有一个文件 Test.py ,其中定义了一个类。我想在从另一个文件动态导入 Test.py 后使用这个类。
我的最终目标更复杂,但我简化了它,但我仍然遇到同样的问题。
文件:Test.py
class Test :
def __init__ ( self ) :
print ( "instance" )
文件:Main.py
def allImports ( ) :
__import__ ( "Test" )
我得到了什么:
>>> import Main
>>> Main.allImports()
>>> myInstance = Test ()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Test' is not defined
我无法在 fromlist 中指定我必须导入 Test.py 中的哪个元素,因为我不应该知道它们。
我该怎么办?
【问题讨论】:
-
你的代码不会只将模块“Test”导入到函数
allImports()的本地范围内吗? -
实际上我发布的代码可以,但我希望能够在任何地方使用 Test 类而无需任何前缀。
-
这可能有点繁琐。你能假设模块将包含一个与模块同名的类吗?
-
没有@millimoose,有时模块会包含多个类
标签: python class dynamic import