python中 和 的打包和解包

2022-06-18 03:48:09 字數 1305 閱讀 6861

python中的*和**,能夠讓函式支援任意數量的引數,它們在函式定義和呼叫中,有著不同的目的

一. 打包引數

*的作用:在函式定義中,收集所有的位置引數到乙個新的元組,並將這個元組賦值給變數args

>>> def f(*args):

print(args)

>>> f()

()>>> f(1)

(1,)

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

(1, 2, 3, 4)

>>>

** 的作用:在函式定義中,收集關鍵字引數傳遞給乙個字典,並將這個字典賦值給變數kwargs

>>> def f(**kwargs):

print(kwargs)

>>> f()

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

ps:遇到問題沒人解答?需要python學習資料?可以加點選下方鏈結自行獲取

二. 解包引數

的作用:在函式呼叫中,能夠將元組或者列表解包成不同的引數

>>> 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

的作用:在函式呼叫中,會以鍵/值的形式解包乙個字典,使其成為獨立的關鍵字引數

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

print(a, b, c, d)

>>> kwargs =

>>> func(**kwargs)

1 2 3 4

舉個栗子:

# 引數解包:將整個list當做引數傳給函式

list = [1, 2, 4]

def add_fn(a, b, c):

return a + b + c

sum = add_fn(*list)

print("引數解包:", sum)

執行結果:

引數解包: 7

tar打包和解包

tar這個命令用了上百次,每次用之前都需要再確認一遍。雖然是很簡單的命令,但是對於乙個每天要想很多事情的老年人來說,要精準記住每個引數還真不是件容易的事,索性寫下來,下次開啟博文照做就好了,呵呵 打包 tar zcvf file.tar.gz file1 file2 file2 tar jcvf f...

目錄的打包和解包

由於程式中需要把整個目錄打包,所以自己寫了打包和解包函式,我對此打包檔案的布局設計如下 20位元組 表明目錄結構的起點 目錄結構起點 前 20個位元組標明的 檔案內容起點 檔案fd結構 檔案fd結構 檔案內容 檔案內容 目錄fd結構 目錄fd結構 目錄fd結構 20位元組 表明目錄結構的起點 目錄結...

打包和解包彙總 gz bz2 xz zip

gz tar xvzf abc.tar.gz gz壓縮的解包 打包 tar cvzf abc.tar.gz abc.txt bz2 tar xvjf abc.tar.bz2 bz2格式的解包 打包 tar cvjf abc.tar.bz2 abc.txt xz 先xz d abc.tar.xz 然後...