1. 程式人生 > >Python(55)_默認參數的陷阱

Python(55)_默認參數的陷阱

操作 傳值 類型 資源 一個 陷阱 odin 簡單 bow

#-*-coding:utf-8-*-
‘‘‘
函數復習
‘‘‘
def f():
    return bowen
print(2+3) # 事實上python中會調用內部的函數,相當於add()
print(f())

def wahaha(*args):
    print(args)
wahaha(1,2,3)
l = [1,2,3]
wahaha(*l)

‘‘‘
默認參數的陷阱
  如果默認參數的值是一個可變數據類型,那麽每一次調用的時候,不傳值就公用這個數據類型的資源
  簡單的說,就是不傳值的情況下,始終操作的都是同一個字典或者列表
‘‘‘
def qqxing(l=[]):#
默認參數 l.append(1) print(l) qqxing() # [1] qqxing() # [1, 1] qqxing([]) # [1] qqxing() # [1, 1, 1] 用的是第二個調用時的列表 def ee(k,l={}): l[k] = v print(l) ee(1) # {1: ‘v‘} ee(2) # {1: ‘v‘, 2: ‘v‘} ee(3) # {1: ‘v‘, 2: ‘v‘, 3: ‘v‘}

技術分享圖片

Python(55)_默認參數的陷阱