关键字参数性能(python)

djm*_*mac 3 python performance keyword-argument

我试图通过使用timeit测试(计时)各种函数来优化一些python代码.

我发现根据变量是关键字参数还是函数内部,我得到的速度不同.

那是:

def test_function(A = value()):
    #rest of function....
Run Code Online (Sandbox Code Playgroud)

返回的结果与以下不同:

def test_function():
    A = value()
    #rest of function ...
Run Code Online (Sandbox Code Playgroud)

我想他们会得到非常相似的结果 - 我猜我不理解/遗漏了一些东西......

(也为测试做了10,000次循环)

Nik*_*ann 9

关键字参数在函数定义时评估一次.所以在你的第一个例子中value()只调用一次,无论你多久调用一次测试函数.如果value()是昂贵的,这解释了两个版本之间的运行时差异.