中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中裝包與解包的示例分析

發布時間:2021-07-16 13:59:06 來源:億速云 閱讀:117 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關python中裝包與解包的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

*args和 **kwargs是常用的兩個參數

*args:用于接受多余的未命名的參數,元組類型。

**kwargs:用于接受形參的命名參數,字典類型的數據。

可變參數args:

def fun(n, *args):
  print(n)
  print(args)   # 未拆包
  print(*args)  # 進行拆包
fun(1,2,3,4)

結果:

1
(2, 3, 4)
2 3 4

形參中的*args是接受數據的args,它是一個元組,把傳入的數據放進args元組中。

函數中的args仍然是元組, *args就是將元組的數據進行拆包,一開始輸入的形式。

關鍵字參數**kwargs

def fun(**kwargs):
  print(kwargs)    # 未拆包
  print(*kwargs) # 進行拆包
fun(a=1, b=2)

結果:

{'a': 1, 'b': 2}
a b

*args用來接受多余的未命名參數, **kwargs是用來接受命名參數。

裝包的意義就是把未命名的參數和命名的參數放在元組或字典中。

解包

上面介紹了args, kwargs的裝包作用,起到作用的是、 這兩個參數。

1. 解包的意義就是將傳遞給函數的一個列表,元組,字典,拆分成獨立的多個元素然后賦值給函數中的參變量。

2. 解壓字典有兩種解發,一種用*解的只有key,一種用**解的有key,value。但是這個方法**只能在函數定義中使用。

def fun(*args, **kwargs):
  for arg in args:
    print(arg)
  for k, v in kwargs.items():
    print(k, v)
  print('-'*50)
fun(a, c)  # 參數都賦值給args,并沒有kwargs的參數
fun(*a, *c)   # 解壓的參數都賦值給args 等價為 1, 2, 3, 'a', 'b', 'c'
fun(*a, **c)  # a解壓給args,c解壓給kwargs 等價為 1, 2, 3, 'a'=1, 'b'=2, 'c'=3

結果:

[1, 2, 3]
{'a': 1, 'b': 2, 'c': 3}
--------------------------------------------------
1
2
3
a
b
c
--------------------------------------------------
1
2
3
a 1
b 2
c 3

問題:

在傳入參數時,可變參數(*)之前不能指定參數名

def myfun(a, *b):
  print(a)
  print(b)
myfun(a=1,2,3,4)


  myfun(a=1,2,3,4)
       ^
SyntaxError: positional argument follows keyword argument

2.函數傳入實參時,可變參數(*)之后的參數必須指定參數名,否則就會被歸到可變參數之中

def myfun(a, *b, c=None):
  print(a)
  print(b)
  print(c)
myfun(1,2,3,c=4)

1
(2, 3)
4

3.一個函數想要使用時必須明確指定參數名,可以將所有參數都放在可變參數之后

def myfun(*, a, b):
  print(a)
  print(b)
myfun(a=1, b=2)

4.關鍵字參數都只能作為最后一個參數,前面的參數按照位置賦值還是名稱賦值都可以

def myfun(a, *b, c, **d):
  print(a)
  print(b)
  print(c)
  print(d)
myfun(1, 2, w=6, c=3, d=4, e=5)   # 記住可變參數(*)之前不能指定參數名

1
(2,)
3
{'w': 6, 'd': 4, 'e': 5}

感謝各位的閱讀!關于“python中裝包與解包的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴山县| 陈巴尔虎旗| 永和县| 贞丰县| 蕲春县| 长岭县| 鄂温| 当阳市| 伊宁市| 文登市| 正安县| 饶阳县| 商河县| 南宁市| 子长县| 清水县| 宁城县| 大庆市| 丰镇市| 健康| 肃南| 江门市| 松潘县| 平南县| 北碚区| 含山县| 远安县| 新干县| 邢台市| 个旧市| 册亨县| 永吉县| 上林县| 兴隆县| 邵东县| 定州市| 全州县| 马关县| 阳高县| 含山县| 彭州市|