如何理解python不定長參數(shù)-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

梅河口網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),梅河口網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為梅河口超過千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的梅河口做網(wǎng)站的公司定做!

這篇文章給大家分享的是有關(guān)如何理解python不定長參數(shù)的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

如何理解python不定長參數(shù)?*args 和 **kwargs 是什么意思?為什么要使用它們?下面我們來說一下這個(gè)問題。

1、函數(shù)參數(shù)可為分如下幾種:必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù) 。

2、當(dāng)我們在定義和調(diào)用一個(gè)函數(shù)時(shí),如果包含所有的參數(shù)類型,則必須按照:必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)的順序。但是在實(shí)際開發(fā)中,不建議包含過多的參數(shù)類型,會影響代碼的可讀性 。

3、必選參數(shù)很簡單,就是函數(shù)中必須要接受的參數(shù)。

4、默認(rèn)參數(shù),即給參數(shù)賦一個(gè)默認(rèn)值,我們在傳遞時(shí),可省略對該參數(shù)的傳值操作。

如:

def print_test(title, msg="world"):
    print(title, msg)

print_test("hello") # hello world
print_test("hello", "demon") # hello demon
print_test("hello", msg="demon") # hello demon

# 錯(cuò)誤調(diào)用示例
# print_test( msg="demon","hello") # 這樣是不對的

5、可變參數(shù),在定義函數(shù)時(shí)用 *args 來接受,其中 * 是規(guī)定的,args可用其他名稱替換,但一般習(xí)慣用 args 來表示??勺儏?shù)在傳入函數(shù)后,被封裝成一個(gè) tuple 來進(jìn)行使用。所以我們在函數(shù)內(nèi)部,可以通過操作 tuple 的方法來操作參數(shù),示例如下:

def print_numbers(*args):            
    print(type(args))  # tuple
    for n in args:
      print(type(n))   # int

print_numbers(1, 2, 3, 4)

6、如果在函數(shù)外已經(jīng)得到一個(gè) list 或者 tuple,想調(diào)用一個(gè)可變參數(shù),也可以用 *+變量名 的形式進(jìn)行調(diào)用,(這種用法有點(diǎn)類似 C語言 中的指針),示例如下:

def print_numbers(*args):            
    print(type(args))  # tuple
    for n in args:
      print(type(n))   # int

l = [1, 2, 3, 4]
print_numbers(*l)  # *l,等價(jià)于 print_numbers(1, 2, 3, 4)
print_numbers(l)   # 將 l 作為一個(gè)整體傳入,這樣函數(shù)接受到的其實(shí)只有一個(gè)參數(shù),且參數(shù)類型為 list

7、關(guān)鍵字參數(shù)使用 kwargs 來標(biāo)識,是規(guī)定,而kwargs可替換,它將不定長參數(shù)轉(zhuǎn)換為 dict 傳入函數(shù)。它用于擴(kuò)展函數(shù)的功能。比如我們要實(shí)現(xiàn)用戶注冊,有必輸項(xiàng)和非必輸項(xiàng),這些非必輸項(xiàng)就可以用關(guān)鍵字參數(shù)來接受。示例如下:

def register(name, email, **kwargs):
    print('name:%s, age:%s, others:%s', (name, email, kw))

register("demon", "1@1.com") # name:%s, age:%s, others:%s ('demon', '1@1.com', {})
register("demon", "1@1.com", addr="shanghai") # name:%s, age:%s, others:%s ('demon', '1@1.com', {'addr': 'shanghai'})

感謝各位的閱讀!關(guān)于如何理解python不定長參數(shù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

新聞標(biāo)題:如何理解python不定長參數(shù)-創(chuàng)新互聯(lián)
URL標(biāo)題:http://bm7419.com/article34/dseipe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、自適應(yīng)網(wǎng)站、商城網(wǎng)站、定制開發(fā)網(wǎng)站設(shè)計(jì)、移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作