今日分享
引數的預設值陷阱
下面定義的函式f
,其引數d
是乙個預設引數,且為字典型別:
def f(a,d={}):
print(f'a: ')
print(f'd: ')
# do some process
return d
最後返回字典d
,下面呼叫函式f
:
ret_dict = f(1) # 第二個引數d使用預設值
ret_dict['b'] = 2
ret_dict['c'] = 3
再次使用函式f
:
f(1)
儘管第二個引數為預設引數,按照預期它應該返回乙個空字典,但結果卻是如下:
a: 1
d:
應該將它們的預設值設定為none
def f(a,d=none):
if d is none:
d = {} ### 初始化為空字典
print(f'a: ')
print(f'd: ')
# do some process
return d
ret_dict = f(1) # 第二個引數d使用預設值
### 結果:
### a: 1
### d: {}
再次呼叫:
ret_dict['b'] = 2
ret_dict['c'] = 3
f(1)
### 結果:
### a: 1
### d: {}
此時符合我們的預期!
近期小例子:chain串聯多個迭代物件;機器學習中會涉及到的隨機選擇樣本;使用namedtuple的小例子; pkuseg 做分詞,超級nice~; 寫乙個裝飾器:統計異常發生次數和時間;物件可被呼叫的實現方法;求任意維度兩點間距離; 兩種合併字典的方法對比; 計算和聚合同時進行; groupby 分組; plotly畫柱狀圖+折線圖;
python小例子,長按關注
後期計畫:不斷深入python小例子,新增更多基於python的小例子,不限於:pyqt製作gui
,numpy數值計算
,pandas資料分析
,sklearn機器學習實戰
,keras+tensorflow深度學習
等。2.0版本預計在春節前發出來。
方法引數 預設值 Python引數的預設值陷阱!
今日分享 引數的預設值陷阱 下面定義的函式f,其引數d是乙個預設引數,且為字典型別 def f a,d print f a print f d do some process return d 最後返回字典d,下面呼叫函式f ret dict f 1 第二個引數d使用預設值 ret dict b 2...
函式(引數,預設值)
js定義函式引數沒有非常嚴格的要求,可以有也可以沒有,在呼叫的時候也是,引數可以有可以沒有,也可以和定義時的引數個數不一致 沒有給count傳入引數,預設為10 也可以直接在引數中給count賦值 但是特別注意的是不能給count傳入0,因為0與undefined都是false,因此count傳入的...
函式引數預設值
include 函式預設值為0 intmul int x 0 c語言編譯器會報錯,c 不會 intmain int argc,char ar 預設值不需要在定義時給出,宣告時給出即可 intmul int x 函式預設引數的規則 引數的預設值必須從右向左匹配 函式呼叫時使用了預設值,則後續引數必須使...