Python 學習筆記十三 函式的引數對應

2022-01-30 17:21:34 字數 1485 閱讀 9485

我們在定義函式時候已經對函式進行了引數傳遞呼叫,但是那只是粗淺的位置傳遞

示例

def sum(a,b,c):

d = a+b+c

return d

print(sum(1,2,3))

呼叫函式sum的時候,1,2,3分別傳遞給a,b,c

關鍵字傳遞是根據每個引數的名字傳遞引數

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):

print(type(num))

print(num)

func(1,2,3)

func(1,2,3,44,56)

兩次呼叫,儘管引數個數不同,但是都是基於函式func定義。在func的參數列中,所有的引數被name收集,根據位置合成了乙個元組(tuple),這就是包裹傳遞

在元組前加*

下面是包裹關鍵字傳遞的例子

def func(**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是乙個字典,收集所有的關鍵字,傳遞函式給func。為了提醒python,引數dict是包裹關鍵字傳遞所用的字典,

在dict前加**

*與**也可以在呼叫的時候使用

下面為例子:

def func(a,b,c):

print(a,b,c)

args = (1,6,3)

func(*args)

相應的,也存在對詞典的解包裹,使用相同的func定義,然後:

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