Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 导入优化代码的最佳方法是什么?_Python_Python 3.x_Pyinstaller - Fatal编程技术网

Python 导入优化代码的最佳方法是什么?

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中执行,但仅导

Im当前正在使用:

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的问题。可能这个时间差是因为当您导入一个方法时,解释器检查库中这样一个方法的位置。