は私がipythonのマジック%のはtimeitでそれらを時間を計る二つの機能Python関数の変数は、関数呼び出しごとに再初期化されますか?
def myfunction1(number):
biglist = [1,2,3,4,5,6,7,8,9]
print number*biglist
biglist = [1,2,3,4,5,6,7,8,9]
def myfunction2(number, biglist):
print number*biglist
があるとします。
In [5]: %timeit myfunction2(number, biglist)
1000000 loops, best of 3: 607 ns per loop
In [6]: %timeit myfunction1(number)
1000000 loops, best of 3: 841 ns per loop
これはbiglist
変数は、私がmyfunction1呼び出すたびに、宣言されていることを意味していますか?最初の関数呼び出しPythonが何らかの形で関数に変数biglist
を格納した後、関数が呼び出されるたびにリストを再初期化する必要がないように推測しました。
私はPythonの内部動作を知らないので、私はちょうど推測しています。誰かが実際に何が起こるか説明できますか?
'timeit'を使うのは、一度だけ実行したように時間を実行することです! – SilentGhost
私は分かりません。この例では、私のtimeitの使い方が間違っていますか? – Viktiglemma