変数が不変であるかどうかが常に明確であるとは限らないため、関数を作成するときに引数を他の変数にコピーすることをお勧めします。[場所を覚えていないので聞かないでください]。これに従って関数を書いています。
私が理解しているように、新しい変数を作成するにはオーバーヘッドがかかります。小さいかもしれませんが、そこにあります。では、何をすべきでしょうか?新しい変数を作成する必要がありますか、それとも引数を保持しない必要がありますか?
私はこれとこれを読みました。float と int がこれほど簡単に変更できるのに、なぜ不変なのかについて混乱していますか?
編集:
私は単純な関数を書いています。例を掲載します。最初のものは、Python では引数をコピーする必要があることを読んだ後に書き、2 つ目は試行錯誤の結果、それが不要であることに気付いたときに書きました。
#When I copied arguments into another variable
def zeros_in_fact(num):
'''Returns the number of zeros at the end of factorial of num'''
temp = num
if temp < 0:
return 0
fives = 0
while temp:
temp /= 5
fives += temp
return fives
#When I did not copy arguments into another variable
def zeros_in_fact(num):
'''Returns the number of zeros at the end of factorial of num'''
if num < 0:
return 0
fives = 0
while num:
num /= 5
fives += num
return fives