定義函式的時候,我們把引數的名字和位置確定下來,函式的介面定義就完成了。對於函式的呼叫者來說,只需要知道如何傳遞正確的引數,以及函式將返回什麼樣的值就夠了,函式內部的複雜邏輯被封裝起來,呼叫者無需了解。
python的函式定義非常簡單,但靈活度卻非常大。除了正常定義的必選引數外,還可以使用預設引數、可變引數和關鍵字引數,使得函式定義出來的介面,不但能處理複雜的引數,還可以簡化呼叫者的**。
我們先寫乙個計算x^2
的函式:
def
power
(x):
return x * x
對於power(x)
函式,引數x
就是乙個位置引數。
當我們呼叫power
函式時,必須傳入有且僅有的乙個引數x
>>> power(5)
25>>> power(15)
225
現在,如果我們要計算x^3
怎麼辦?可以再定義乙個power3
函式,但是如果要計算x^4
、x^5
……怎麼辦?我們不可能定義無限多個函式。
你也許想到了,可以把power(x)
修改為power(x, n)
,用來計算x^n
,說幹就幹:
def
power
(x, n):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
對於這個修改後的power(x, n)
函式,可以計算任意n
次方:
>>> power(5, 2)
25>>> power(5, 3)
125
修改後的power(x, n)
函式有兩個引數:x
和n
,這兩個引數都是位置引數,呼叫函式時,傳入的兩個值按照位置順序依次賦給引數x
和n
。 python基礎(函式引數魔法,位置引數)
1.值從 來 定義函式時,你可能心存疑慮 引數的值是怎麼來的呢?編寫函式旨在為當前程式 甚至其他程式 提供服務,你的職責是確保它在提供的引數正確時完成任務,並在引數不對時以顯而易見的方式失敗。為此,通常使用斷言或異常。在def語句中,位於函式名後面的變數通常稱為形參,而呼叫函式時提供的值稱為實參。2...
python位置引數和關鍵字引數
剛學用python的時候,特別是看一些庫的原始碼時,經常會看到func args,kwargs 這樣的函式定義,這個 和 讓人有點費解。其實只要把函式引數定義搞清楚了,就不難理解了。先說說函式定義,我們都知道,下面的 定義了乙個函式funca def funca pass 顯然,函式funca沒有引...
python 中的位置引數和預設引數
args與位置引數和預設引數混用的情況下 示例一 三者順序是 位置引數 預設引數 args 注意三者的順序 args 表示引數元組 def foo x,y 1,args pass foo 1,2,3,4,5 其中的x為1,y 1的值被2替換,3,4,5都給args,即args 3,4,5 12 34...