Python定義函式預設引數

2021-08-08 01:39:08 字數 871 閱讀 3271

**慕課網

定義函式的時候,還可以有預設引數。

例如python自帶的 int() 函式,其實就有兩個引數,我們既可以傳乙個引數,又可以傳兩個引數:

>>> int('123')

123>>> int('123', 8)

83

int()函式的第二個引數是轉換進製,如果不傳,預設是十進位制 (base=10),如果傳了,就用傳入的引數。

可見,函式的預設引數的作用是簡化呼叫,你只需要把必須的引數傳進去。但是在需要的時候,又可以傳入額外的引數來覆蓋預設引數值。

我們來定義乙個計算 x 的n次方的函式:

def power(x, n):

s = 1

while n > 0:

n = n - 1

s = s * x

return s

假設計算平方的次數最多,我們就可以把 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之定義預設引數

例如python自帶的 int 函式,其實就有兩個引數,我們既可以傳乙個引數,又可以傳兩個引數 int 123 123 int 123 8 83int 函式的第二個引數是轉換進製,如果不傳,預設是十進位制 base 10 如果傳了,就用傳入的引數。可見,函式的預設引數的作用是簡化呼叫,你只需要把必須...

Python如何定義有預設引數的函式

問題 你想定義乙個函式或者方法,它的乙個或多個引數是可選的並且有乙個預設值。解決方案 定義乙個有可選引數的函式是非常簡單的,直接在函式定義中給引數指定乙個預設值,並放到引數列表最後就行了。例如 def spam a,b 42 print a,b spam 1 ok.a 1,b 42 spam 1,2...

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 當...