python函數參數的默認值


#函數參數的默認值只會執行一次
def f(a, L=[]):
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
對於這個函數而言,在調用的時候沒有傳遞第二個參數,則由於函數參數的默認值只會執行一次,即初始化L = []一次,
L被賦予了列表對象的一個內存空間,地址不可變,由於列表可變的特性,每次調用只會在原來的列表上追加,並不會創建
新的列表。
輸出結果:      

  [1]
  [1, 2]
  [1, 2, 3]

def _f(a, L = None):
if L is None:
L = []
L.append(a)
return L
print(_f(1))
print(_f(2))
print(_f(3))
對於這個函數來說,參數初始化的時候,默認值只會執行一次,可以假設L指向內存的0號空間,不管后面怎么改變賦值,
接下來再調用這個函數的時候L都會指向0號空間。
輸出結果:

  [1]
  [2]
  [3]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM