學習Python中關於預設引數的理解

2021-07-07 04:32:46 字數 629 閱讀 8578

昨天,我遇到了一題:

def example(a, list = ):

return list

exampel('a')

example('b',)

print example('c')

問輸出什麼,我看了一下,想都沒想就覺得答案是[『c'],結果當然是我錯了,正確輸出是['a','c']

我就想來想去也不知道為什麼,既然第二次呼叫example時list已經被賦值為空列表了,這個『a'怎麼還在?

問人無果後,我後來終於想明白了,list是預設引數

例如:

def example1(a,b = 1):

print a

print b

example1(2) #這裡輸出是2,1

example1(3,4) #這裡輸出是3,4

example1(1)    #這裡輸出是1,1
可見第二次我將預設引數賦值為4的時候,它列印了4,但第三次呼叫時b還是為1
回到剛才那題,答案也就出來了

python 預設引數 Python預設引數有坑?

最近有小夥伴在面試中遇到了 關於函式預設引數的坑 的題目,少數夥伴對此問題理得不是太清楚,今天匯智妹請到匯智動力高階教師鄧老師為大家詳細講解一下,幫助不太清楚的小夥伴清晰的梳理一遍。鄧老師本次主要從以下三點來講解 什麼是預設引數?函式預設引數的坑是什麼?函式預設引數為什麼會有坑?一 什麼是預設引數 ...

C 中關於預設建構函式和預設引數

include using namespace std class time time int s,int h 10,int m 52 time int h,int m,int s hour h minute m sec s 過載建構函式,執行時會根據形參的不同,自動匹配呼叫 類的初始化資料成員的另...

python預設引數

預設引數很有用,但使用不當,也會掉坑里。預設引數有個最大的坑,演示如下 先定義乙個函式,傳入乙個list,新增乙個end再返回 def add end l return l當你正常呼叫時,結果似乎不錯 add end 1,2,3 1,2,3,end add end x y z x y z end 當...