python操作符**與*有哪些區(qū)別-創(chuàng)新互聯(lián)

小編給大家分享一下python操作符**與*有哪些區(qū)別,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

目前創(chuàng)新互聯(lián)建站已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、旺蒼網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

真正意義上有四類用法即:

算數(shù)運(yùn)算,函數(shù)形參,函數(shù)實(shí)參,序列解包

算數(shù)運(yùn)算

** = 乘方
>>> 2 * 510>>> 2 ** 532

函數(shù)形參

*args 和 **kwargs 主用于函數(shù)定義。

你可以將不定數(shù)量的參數(shù)傳遞給一個(gè)函數(shù)。不定的意思是:預(yù)先并不知道, 函數(shù)使用者會傳遞多少個(gè)參數(shù)給你, 所以在這個(gè)場景下使用這兩個(gè)關(guān)鍵字。其實(shí)并不是必須寫成 *args 和 **kwargs。 *(星號) 才是必須的. 你也可以寫成 *ar 和 **k 。而寫成 *args 和**kwargs 只是一個(gè)通俗的命名約定。

python函數(shù)傳遞參數(shù)的方式有兩種:

  • 位置參數(shù)(positional argument)

  • 關(guān)鍵詞參數(shù)(keyword argument)

*args 與 **kwargs 的區(qū)別,都是 python 中的可變參數(shù):

  • *args=任何多個(gè)無名參數(shù),它本質(zhì)是一個(gè) tuple

  • **kwargs =關(guān)鍵字參數(shù),它本質(zhì)上是一個(gè) dict

示例:

同使用 *args 和 **kwargs 時(shí),必須 *args 參數(shù)列要在 **kwargs 之前。

>>> def fun(*args, **kwargs):...     print('args=', args)...     print('kwargs=', kwargs)... >>> fun(1, 2, 3, 4, A='a', B='b', C='c', D='d')args= (1, 2, 3, 4)kwargs= {'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd'}

*args

>>> def fun(name, *args):...     print('你好:', name)...     for i in args:...         print("你的寵物有:", i)... >>> fun("Geek", "dog", "cat")你好: Geek你的寵物有: dog你的寵物有: cat

**kwargs

>>> def fun(**kwargs):...     for key, value in kwargs.items():...         print("{0} 喜歡 {1}".format(key, value))... >>> fun(Geek="cat", cat="box")Geek 喜歡 catcat 喜歡 box

函數(shù)實(shí)參

如果函數(shù)的形參是定長參數(shù),也可以使用 *args 和 **kwargs 調(diào)用函數(shù),類似對元組和字典進(jìn)行解引用:

>>> def fun(data1, data2, data3):...     print("data1: ", data1)...     print("data2: ", data2)...     print("data3: ", data3)... >>> args = ("one", 2, 3)>>> fun(*args)data1:  onedata2:  2data3:  3>>> kwargs = {"data3": "one", "data2": 2, "data1": 3}>>> fun(**kwargs)data1:  3data2:  2data3:  one

序列解包

這里只列出一個(gè)例子,序列解包沒有 **。

>>> a, b, *c = 0, 1, 2, 3  >>> a  0  >>> b  1  >>> c  [2, 3]

看完了這篇文章,相信你對python操作符**與*有哪些區(qū)別有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享題目:python操作符**與*有哪些區(qū)別-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://muchs.cn/article18/dddcdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、靜態(tài)網(wǎng)站網(wǎng)站建設(shè)、商城網(wǎng)站、品牌網(wǎng)站制作外貿(mào)建站

廣告

聲明:本網(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)

綿陽服務(wù)器托管