我們在定義函式時候已經對函式進行了引數傳遞呼叫,但是那只是粗淺的位置傳遞
示例
def sum(a,b,c):呼叫函式sum的時候,1,2,3分別傳遞給a,b,cd = a+b+c
return d
print(sum(1,2,3))
關鍵字傳遞是根據每個引數的名字傳遞引數
print(sum(c=3,b=2,a=1))關鍵字可以跟位置傳遞混合使用,但是位置引數要出現在關鍵字引數之前
print(sum(1,c=3,b=2))在定義引數時,使用形如a=10的方式,可以給引數賦予預設值(default),如果引數最終沒有被傳遞值,將使用該預設值。
def sum(b,c,a=10):預設值需要寫在最後,否則報錯!d = a+b+c
return d
print(sum(c=3,b=2))
呼叫時候沒有a的值,則使用了預設值
列印螢幕結果為:
在定義函式時候,我們並不知道呼叫函式的時候需要傳遞多少個引數。這時候,使用包裹傳遞會非常有用
下面是包裹位置傳遞的例子
def func(*num):兩次呼叫,儘管引數個數不同,但是都是基於函式func定義。在func的參數列中,所有的引數被name收集,根據位置合成了乙個元組(tuple),這就是包裹傳遞print(type(num))
print(num)
func(1,2,3)
func(1,2,3,44,56)
在元組前加*
下面是包裹關鍵字傳遞的例子
def func(**dict):dict是乙個字典,收集所有的關鍵字,傳遞函式給func。為了提醒python,引數dict是包裹關鍵字傳遞所用的字典,print(type(dict))
print(dict)
func(a=1,b=2,c=3)
func(a=1,b=2,c=3,d=44,e=56)
在dict前加**
*與**也可以在呼叫的時候使用
下面為例子:
def func(a,b,c):相應的,也存在對詞典的解包裹,使用相同的func定義,然後:print(a,b,c)
args = (1,6,3)
func(*args)
def func(a,b):注意:請注意定義時和呼叫時的區分。包裹和解包裹並不是相反操作,是兩個相對獨立的過程。print(a,b)
dict=
func(**dict)
Python學習筆記(十三)
模組包 if name main 軟體目錄結構規範 作業 atm 購物 程式 import 語句 import module1 module2 modulen 當我們使用import語句的時候,python直譯器通過自己的搜尋路徑 存在sys.path裡 進行搜尋from import 語句 fro...
python基礎學習筆記(十三)
re模組包含對 正規表示式。本章會對 re模組主要特徵和正規表示式進行介紹。什麼是正規表示式 正規表示式是可以匹配文字片段的模式。最簡單的正規表示式就是普通字串,可以匹配其自身。換包話說,正規表示式 python 可以匹配字串 python 你可以用這種匹配行為搜尋文字中的模式,並且用計算後有值併發...
Python學習筆記(十三) 類
本節主要對python中類的概念進行介紹。類完全由物件導向概念所引出。定義乙個類 class people 幫助資訊 number 100 建構函式,初始化方法,當建立乙個類的時候,首先會呼叫它 def init self,name,age self.name name self.age age d...