函式傳參字典 Python 函式引數解包

2021-10-14 16:52:24 字數 1116 閱讀 5599

做乙個簡單、明亮、快樂的手藝人。
函式引數解包(function argument unpacking)是在函式傳參時將iterable引數物件中的元素解包出來的一種技術。

想象乙個場景,當函式所有實參儲存在乙個 tuple 或者 list 中時,如何優雅傳參?

def print_info(name, age, ***):

print('name = ; age = ; *** = '.format(name, age, ***))

list_info = ['luke', '42', 'male']

tuple_info = ('luke', '42', 'male')

如果不使用函式引數解包技術,寫法如下

print_info(list_info[0], list_info[1], list_info[2])

print_info(tuple_info[0], tuple_info[1], tuple_info[2])

當然任何乙個有自我修養的程式設計師都不會對這種寫法滿意,幸運的是python的設計者們已經為我們提供給了乙個優雅的方案。

print_info(*list_info)

print_info(*tuple_info)

這就是函式引數解包,對iterable object 進行unpack,並將所有元素作為引數傳遞給被呼叫函式。除了tuple、list、generators之外,實踐中也常出現對dictionary的解包,字典的解包較為有趣。由於字典中元素是key/value pair,因此使用 * 或 ** 對字典進行解包得到的結果不同。

dic = 

**dic ==> 'luke', '42', 'male'

*dic ==> 'name', 'age', '***'

晚安。

函式傳參字典 Python函式傳參方法超級大彙總

位置引數 位置引數傳遞是最為簡單的傳遞方式,按照函式引數的位置順序逐個匹配傳入,傳入引數的個數必須與函式引數個數一致。見示例1,根據位置順序進行匹配,a,b,c分別賦值為2,3,4 示例1 def func a,b,c print args a,b,c if name main func 2,3,4...

python 入參函式 Python 函式傳參

這個世界其實從不曾有乙個人能取代另乙個人的位置,所謂的取代,只是以前的那個人被遺忘了。普通傳參的小坑def test a return a print test print test print test 返回的結果 a a a a a a 原因 傳入的引數是乙個空的列表,python遇到函式的時候...

Python函式傳參

首先還是應該科普下函式引數傳遞機制,傳值和傳引用是什麼意思?函式引數傳遞機制問題在本質上是呼叫函式 過程 和被呼叫函式 過程 在呼叫發生時進行通訊的方法問題。基本的引數傳遞機制有兩種 值傳遞和引用傳遞。值傳遞 passl by value 過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在...