定義函式的時候,還可以有預設引數。
例如python自帶的int()函式,其實就有兩個引數,我們既可以傳乙個引數,又可以傳兩個引數:
>>> int('123')int()函式的第二個引數是轉換進製,如果不傳,預設是十進位制 (base=10),如果傳了,就用傳入的引數。123>>> int('123', 8)
83
可見,函式的預設引數的作用是簡化呼叫,你只需要把必須的引數傳進去。但是在需要的時候,又可以傳入額外的引數來覆蓋預設引數值。
我們來定義乙個計算 x 的n次方的函式:
#coding=gbk
def power(x,n):
if x==0:
return '請重新輸入:'
else:
return x**n
print(power(1,3))
假設計算平方的次數最多,我們就可以把 n 的預設值設定為 2:
def power(x, n=2):這樣一來,計算平方就不需要傳入兩個引數了:s = 1
while n > 0:
n = n - 1
s = s * x
return s
>>> power(5)由於函式的引數按從左到右的順序匹配,所以預設引數只能定義在必需引數的後面:25
# ok:def fn1(a, b=1, c=2):
pass
# error:
def fn2(a=1, b):
pass
python 預設引數 Python預設引數有坑?
最近有小夥伴在面試中遇到了 關於函式預設引數的坑 的題目,少數夥伴對此問題理得不是太清楚,今天匯智妹請到匯智動力高階教師鄧老師為大家詳細講解一下,幫助不太清楚的小夥伴清晰的梳理一遍。鄧老師本次主要從以下三點來講解 什麼是預設引數?函式預設引數的坑是什麼?函式預設引數為什麼會有坑?一 什麼是預設引數 ...
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 當...
Python預設引數
def add end list return list 預設引數多次呼叫,竟然每次結果不一樣 n 0 while n 5 print n,add end n 1 列印結果 很多初學者很疑惑,預設引數是 但是函式似乎每次都 記住了 上次新增了 end 後的list。原因解釋如下 python函式在定...