Python 导入优化代码的最佳方法是什么?
Im当前正在使用:Python 导入优化代码的最佳方法是什么?,python,python-3.x,pyinstaller,Python,Python 3.x,Pyinstaller,Im当前正在使用: import os 我是否应该像这样单独导入所有内容: from os import listdir, chdir, path, getcwd 我希望我编译的.exe尽可能小,并尽可能优化。值得这么做,还是python在编译时不包含未使用的函数和类 Im使用pyinstaller导入操作系统方法在执行时间方面效率更高 如果我们导入整个模块: import os def list(): print(os.listdir('.')) 它在0.074s中执行,但仅导
import os
我是否应该像这样单独导入所有内容:
from os import listdir, chdir, path, getcwd
我希望我编译的.exe尽可能小,并尽可能优化。值得这么做,还是python在编译时不包含未使用的函数和类
Im使用pyinstaller导入操作系统方法在执行时间方面效率更高 如果我们导入整个模块:
import os
def list():
print(os.listdir('.'))
它在0.074s中执行,但仅导入一个方法时:
from os import listdir
def list():
print(listdir('.'))
然后需要0.076秒
在这里,我使用了
timeit
模块对上述函数的执行进行计时。如果您同时尝试这两种方法,final.exe的大小有什么不同?我怀疑您是否会看到结果文件大小有什么不同。与C中的include
不同,Python中的import
实际上并没有将粘贴代码复制到原始文件中。我认为exe的大小不会有任何差异。这两种方法只会改变函数的使用方式。通常,将.exe尽可能小是不值得的。Python编译成字节码,然后才进行解释。当您导入某些内容时,整个库不会被复制到您的字节码中,它只是将名称绑定到外部对象的一种方式,而外部对象将被自己解释。在幕后,在代码> >导入操作系统> />代码>和代码>之间,从OS导入Listdir 中没有差别,请考虑用不同方法对编译后可执行文件大小的影响来完成您的答案。不管多么有趣,您的答案并没有真正解决Goli的问题。可能这个时间差是因为当您导入一个方法时,解释器检查库中这样一个方法的位置。