【发布时间】:2016-02-29 18:23:06
【问题描述】:
我在找方法
from myLib import *
在我的 python 代码中进行导入循环
__import__() 方法似乎没有提供* 功能,因为我必须指定要导入的每个内容。
有没有办法做到*?
非常感谢您的帮助
编辑:
澄清一下,目标是导入一堆类,它们位于包中的一堆模块中,以通过类名直接访问它们,不像 myPacakge.myModule.myClass(),也不像 myModule.myClass( ) 但只是 myClass()
想象一下你有:
myScript.py
myPackage
\__init__.py
\myModule_0.py
\myModule_1.py
\myModule_2.py
\myModule_3.py
\myModule_4.py
每个 myModule 包含一堆类,并且您正在编辑 myScript.py,您希望能够访问每个 myModule_X.py 中的所有类,例如:
myClass()
myOtherClass()
myOtherOtherClass()
等等...不像 myModule_X.myClass() 也不像 myPackage.myModyle_X.myClass()
【问题讨论】:
-
出于好奇,您为什么要这样做? 99% 的情况下,您通常在导入之前就知道要导入的内容,所以
from whatever import *可以很好地解决这个问题。 -
这个问题让我尖叫XY problem。您这样做是为了解决什么问题?
-
我很困惑,你为什么不能只导入 myLib?这和 import json 然后做 json.loads(a_variable) 的想法是一样的
-
我有一大堆文件,里面有很多类和方法,我想导入所有类和方法,并循环遍历所有这些文件。 from myLib_1 import *, from myLib_2 import *, from myLib_3 import *...etc
-
我知道 package 和 '_ _ all _ _' 但它并没有像我有一个 _ _ init _ _.py 文件和 _ _ all _ _ 和我所有的里面的文件,从 myPackage 导入 * 只返回我所有的 _ _ 所有 _ _ 模块,而不是这些模块中的所有类或方法