欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python3教程:*和**的打包和解包的用法

一. 打包參數(shù)

1. * 的作用:在函數(shù)定義中,收集所有的位置參數(shù)到一個(gè)新的元組,并將這個(gè)元組賦值給變量args

>>> def f(*args):
    print(args)

    
>>> f()
()
>>> f(1)
(1,)
>>> f(1, 2, 3, 4)
(1, 2, 3, 4)
>>> 

2. ** 的作用:在函數(shù)定義中,收集關(guān)鍵字參數(shù)傳遞給一個(gè)字典,并將這個(gè)字典賦值給變量kwargs

>>> def f(**kwargs):
    print(kwargs)

    
>>> f()
{}
>>> f(a=1, b=2)
{'a': 1, 'b': 2}
>>> 

二. 解包參數(shù)

1. * 的作用:在函數(shù)調(diào)用中,* 能夠?qū)⒃M或者列表解包成不同的參數(shù)

>>> def func(a, b, c, d):
    print(a, b, c, d)

    
>>> args = (1, 2, 3, 4)
>>> func(*args)
1 2 3 4

>>> args = [1, 2, 3, 4]
>>> func(*args)
1 2 3 4

2. **的作用:在函數(shù)調(diào)用中,**會以鍵/值的形式解包一個(gè)字典,使其成為獨(dú)立的關(guān)鍵字參數(shù)

>>> def func(a, b, c, d):
    print(a, b, c, d)

    
>>> kwargs = {"a": 1, "b": 2, "c": 3, "d": 4}
>>> func(**kwargs)
1 2 3 4

三. 注意

1. 在函數(shù)定義時(shí),*表示打包,在函數(shù)體內(nèi)部, * 仍然表示解包(print(*args)實(shí)際上也算是調(diào)用了print函數(shù))

>>> def foo(*args, **kwargs):
    print(args)       #未解包參數(shù)
    print(*args)      #解包參數(shù)

    
>>> v = (1, 2, 4)
>>> d = {'a':1, 'b':12}
>>> foo(v, d)
((1, 2, 4), {'a': 1, 'b': 12})
(1, 2, 4) {'a': 1, 'b': 12}

2. 打包和解包并不能脫離函數(shù)而存在

表面上看并沒有什么函數(shù),實(shí)際上是有的,用的就是format的函數(shù)調(diào)用

成都創(chuàng)新互聯(lián)公司專注于封丘企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城網(wǎng)站開發(fā)。封丘網(wǎng)站建設(shè)公司,為封丘等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

>>> c = {"name": 'zhang', "age": 2}
>>> **c
SyntaxError: invalid syntax
>>> 
>>> "Name:{name}, Age:{age}".format(**c)
'Name:zhang, Age:2'

參考源碼中對format函數(shù)的定義

但是這個(gè)字典解包不能用print函數(shù)輸出

'''
學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流群:
尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書!
'''
>>> print(**c)
Traceback (most recent call last):
  File "<pyshell#40>", line 1, in <module>
    print(**c)
TypeError: 'age' is an invalid keyword argument for this function
>>> 

因?yàn)樯鲜鲎值浣獬鰜淼男问绞沁@樣的:

**c = name='zhang',age=2

3. 在ddt中的應(yīng)用

@ddt.data(*all_caseDatas)中,data是一個(gè)函數(shù),調(diào)用函數(shù)的時(shí)候,參數(shù)*all_caseDatas自動(dòng)將參數(shù)列表[{}, {}, {}...]解包為{},{},{}...,在def data(*values)函數(shù)中,*會自動(dòng)將各個(gè)位置參數(shù)打包成新的元組({}, {}, {}...),然后@ddt.data就可以獲取每一條數(shù)據(jù)作為測試用例了

@ddt.data(*all_caseDatas)
    def test_my_request(self, case_data):
        global global_var
        if len(global_var) != 0 and case_data["request_data"] is not None:
            for key, value in global_var.items():
                if case_data["request_data"].find(key) != -1:
                    case_data["request_data"] = case_data["request_data"].replace(key, value)

四. 練習(xí)

請寫出下列代碼的運(yùn)行結(jié)果

def f(str1, *args, **kwargs):
    print(str1, args, kwargs)

l = [1, 2, 3]
t = [4, 5, 6]
d = {"a":7, "b":8, "c":9}

f(1, 2)
f(1, 2, 3, "python")
f("python", a=1, b=2, c=3)

print("================")

f("python", l, d)
f("python", *t)
f("python", *l, **d)
f("python", q="winning", **d)


運(yùn)行結(jié)果:
1 (2,) {}
1 (2, 3, 'python') {}
python () {'a': 1, 'b': 2, 'c': 3}
================
python ([1, 2, 3], {'a': 7, 'b': 8, 'c': 9}) {}
python (4, 5, 6) {}
python (1, 2, 3) {'a': 7, 'b': 8, 'c': 9}
python () {'a': 7, 'b': 8, 'q': 'winning', 'c': 9}

需要注意的是f("python", *t)是把列表t先解包成 4, 5, 6,然后在def f(str1, *args, **kwargs):中將4, 5, 6重新打包成新的元組(4, 5, 6)再傳遞給變量args

分享文章:python3教程:*和**的打包和解包的用法
路徑分享:http://chinadenli.net/article32/dsogjsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、App設(shè)計(jì)微信小程序、網(wǎng)站設(shè)計(jì)、網(wǎng)站營銷

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
久久精品少妇内射毛片| 夫妻激情视频一区二区三区| 国产成人精品视频一区二区三区| 国产福利一区二区三区四区| 日本熟妇熟女久久综合| 国产av天堂一区二区三区粉嫩| 国产成人精品一区二区在线看| 富婆又大又白又丰满又紧又硬| 亚洲一区二区福利在线| 亚洲成人黄色一级大片| 亚洲中文字幕三区四区| 亚洲国产欧美久久精品| 免费特黄一级一区二区三区| 国产又长又粗又爽免费视频| 日本在线高清精品人妻| 国产欧美日韩一级小黄片| 国产又粗又长又大的视频| 欧美精品亚洲精品日韩专区| 九九九热视频最新在线| 欧美成人国产精品高清| 正在播放国产又粗又长| 国产精品十八禁亚洲黄污免费观看| 午夜福利视频日本一区| 99福利一区二区视频| 欧洲日本亚洲一区二区| 午夜小视频成人免费看| 亚洲伊人久久精品国产| 国产二级一级内射视频播放| 欧美日韩国产成人高潮| 在线免费看国产精品黄片| 少妇福利视频一区二区| 国产av精品高清一区二区三区 | 中文字幕人妻一区二区免费| 久热99中文字幕视频在线| 欧美精品亚洲精品日韩精品| 亚洲精品国男人在线视频| 国产欧美精品对白性色| 国产精品99一区二区三区| 99久久精品一区二区国产| 成人精品视频一区二区在线观看| 亚洲一区二区三区精选|