Python(55)_默認參數的陷阱
阿新 • • 發佈:2019-01-09
操作 傳值 類型 資源 一個 陷阱 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)_默認參數的陷阱