形參 是指出現在函數定義中的名稱,而 實參 則是在調用函數時實際傳入的值。 形參定義了一個函數能接受何種類型的實參。 例如,對于以下函數定義:
成都創新互聯公司專注于企業營銷型網站、網站重做改版、大武口網站定制設計、自適應品牌網站建設、H5開發、商城建設、集團公司官網建設、外貿網站建設、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為大武口等各大城市提供網站開發制作服務。
def func(foo, bar=None, **kwargs):
pass
foo, bar 和 kwargs 是 func 的形參。 但是,在調用 func 時,例如:
func(42, bar=314, extra=somevar)
實際的值 42, 314 和 somevar 則是實參。
#Python
2.5
#這個可以用修飾器來完成
#但是一般不會限制參數類型
#給你個思路:
def
argfilter(*types):
def
deco(func):
#這是修飾器
def
newfunc(*args):
#新的函數
if
len(types)==len(args):
correct
=
True
for
i
in
range(len(args)):
if
not
isinstance(args[i],
types[i]):
#判斷類型
correct
=
False
if
correct:
return
func(*args)
#返回原函數值
else:
raise
TypeError
else:
raise
TypeError
return
newfunc
#由修飾器返回新的函數
return
deco
#返回作為修飾器的函數
@argfilter(int,
str)
#指定參數類型
def
func(i,
s):
#定義被修飾的函數
i,
s
#之后你想限制類型的話,
就這樣:
#@argfilter(第一個參數的類名,
第二個參數的類名,
...,
第N個參數的類名)
#def
yourfunc(第一個參數,
第一個參數,
...,
第N個參數):
#
...
#
#相當于:
#def
yourfunc(第一個參數,
第一個參數,
...,
第N個參數):
#
...
#yourfunc
=
argfilter(第一個參數的類名,
第二個參數的類名,
...,
第N個參數的類名)(yourfunc)
上一期我們學習參數傳遞怎么傳遞,也了解了參數的幾種類型。
首先,我們再來回顧一下,形參和實參:
形參是在定義函數時定義的,放在函數名后面的圓括號里,可為空
實參是調用函數時為形參傳入具體的參數值
簡單總結一下,誰調用函數,誰就負責傳入參數。
好吶,本期我們來詳細學習函數幾種參數類型,大綱如下:
python函數的參數名是無意義的,Python允許在調用函數時通過通過名字來傳入參數值。
位置參數:按照形參位置傳入的參數
調用函數時,實參默認按位置順序傳遞的。同時實參個數也要和形參匹配
舉一個小栗子
如果實參的個數與形參不匹配時,調用函數運行就會報錯
Python中,形參與調用函數緊密聯系在一起的。
關鍵字參數:調用函數時,使形參名稱來傳遞參數,形式為“形參名=實參”
關鍵字參數,又叫命名參數,傳遞時無需考慮參數位置和順序
舉一個小栗子
默認參數:定義函數時,我們可以為形參提前設置具體的值。
在定義函數時,默認參數要放到位置等其他參數后面
在調用函數時,默認參數是可選的。如果傳入新值,則會覆蓋默認值
舉一個小栗子
注意,默認值不能位于位置參數前面,否則程序會報錯誤
不定長參數又名可變參數。
不定長參數指的是可變數量的參數,分兩種情況:
如果不定長參數后面,可以新增參數嗎?
我們通過例子來看,會發生什么?
運行上面的程序,Python解釋器會報錯
原因是,形參a已經是不定長參數,我們調用的test(2,3,4)傳入的三個實參,系統自動把它們屬于形參a的值,形參b 和形參c就等于沒有值傳入,這時候系統就認為,調用函數的對象,參數沒有傳夠。
為了解決這一報錯,python引入了 強制命名參數
規定,調用不定參數后面有跟位置參數的函數時,傳入給位置參數時,必須要強制命名參進行傳參。
逆向參數收集針對的對象傳入函數的實參
調用函數時,如果實參是元組,列表或者字典,通過在實參前面加入星號,可以自動把元素進行隔開,然后再轉入給函數進行處理
舉一個小栗子
本期,我們詳細學習了參數幾種類型,為后面我們學習函數,打好基礎。
實踐是檢驗真理的過程,大家多動手練習練習,會有不一樣的奇妙旅程~
好吶,以上是本期內容,歡迎大佬們評論區指正~
形參就是函數入口的參數,函數入口參數傳遞只有傳值與傳值兩種區別。傳值在python里就是以對象,比如數組或者是類來傳遞。至于實參,我印象中是傳遞常量吧。如果不是這樣,應該沒有實參的說法。是某些老師為了忽悠,編造出來的概念游戲。簡單變量應該是指相對對象來講的。在python里,只有對象與基本變量類型。簡單變量的說法在python里似乎也沒有意義。所以,忘記簡單變量與實參這樣的說法。
當前名稱:包含Python形參是函數的詞條
文章URL:http://m.kartarina.com/article36/dodeesg.html
成都網站建設公司_創新互聯,為您提供外貿建站、響應式網站、網頁設計公司、網站策劃、網站營銷、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯