我想只在一个文件中导入我的所有包。
假设我有一个main.py文件,我在其中调用我的所有类(来自src文件夹中的其他.py文件(:
main.py
|-- src
|-- package1.py
|-- package2.py
main.py看起来像这样:
from src.package1 import *
from src.package2 import *
def main():
class1 = ClassFromPackage1()
class2 = ClassFromPackage2()
if __name__ == '__main__':
main()
在包装1.py我进口,比如说numpy,scipy和pandas
import numpy
import scipy
import pandas
class ClassFromPackage1():
# Do stuff using numpy, scipy and pandas
在package2.py中,我使用numpy和scikit学习:
import numpy
import sklearn
class ClassFromPackage2():
# Do stuff using numpy and sklearn
有没有一种方法可以在一个文件Foo.py中导入所有包,我只写:
import numpy
import sklearn
import scipy
import pandas
并在src.py中导入这个Foo.py?比如package1.py
import Foo
class ClassFromPackage1():
# Do stuff using numpy, scipy and pandas
这是个好主意吗?它能减少内存消耗吗?它会帮助python更快地启动main.py吗?
看起来你想让代码更干净?你可以做的是创建一个像foo.py
这样的文件,并将所有导入放到其中。然后你可以通过导入foo.py
内部的模块
from foo import *
这将间接导入所有模块。
您已经完成的方式是通常的方式。与C/C++中的头文件类似,您可以显式地设置依赖关系。这是一件好事。
你问它是否会运行得更快,答案是否定的。所有进口都是共享的。这有时会造成不必要的副作用,但这不是问题所在。