【发布时间】:2017-02-07 06:02:19
【问题描述】:
好的,所以这个问题的措辞很难说。
但是,我有两个用 Python 3.5.2 编写的脚本:
import time
t0 = time.clock()
def hello():
a = []
for i in range(10000000):
a.append(i)
hello()
t1 = time.clock()
print((t1-t0))
输出:1.0960211284655088
和
import time
t0 = time.clock()
a = []
for i in range(10000000):
a.append(i)
t1 = time.clock()
print((t1-t0))
输出:1.432725885821128
第一个脚本在定义的函数中运行得更快,然后被调用;但是,我不知道为什么会这样,我想了解一下,以便学习优化代码。
这是一个仅与 Python 3 的这个特定方面有关的问题。我知道列表推导式和 map() 是执行此特定迭代的更快、更 Python 的方法。
【问题讨论】:
-
独立于您对优化性能的追求,我觉得将代码放在函数中比放在文件范围内总是更好。这使得将脚本转换为可重用的模块变得更容易,并且也使代码在你开始新工作后更容易被继承你的东西的人理解。就个人而言,我认为即使是主脚本也应该在文件范围内没有代码,除了: if name == 'main': callToEntryFunction()抱歉,无法弄清楚如何在评论中格式化代码。 :-\
-
我完全同意。但是,对于使用 python 进行快速破解(例如以 jupyter 为例)。如果在 Python 中查看大量数据,将其放入函数中可能会更快(性能方面)。当然,您总是可以只使用 R 或 Julia 哈哈;但那是题外话。
标签: python performance function python-3.x