python中 args kw表示的是什麼

2021-08-04 05:33:36 字數 2485 閱讀 9448

*args是非關鍵字引數,用於元組,**kw是關鍵字引數,用於字典

def

foo(*args, **kwargs):

print ('args = ', args )

print ('kwargs = ', kwargs )

print ('---------------------------------------')

if __name__ == '__main__':

foo(1,2,3,4)

foo(a=1,b=2,c=3)

foo(1,2,3,4, a=1,b=2,c=3)

foo('a', 1, none, a=1, b='2', c=3)

執行結果:

args =  (1, 2, 3, 4)

kwargs = {}

---------------------------------------

args = ()

kwargs =

---------------------------------------

args = (1, 2, 3, 4)

kwargs =

---------------------------------------

args = ('a', 1, none)

kwargs =

---------------------------------------

可以看到,這兩個是python中的可變引數。args表示任何多個無名引數,它是乙個tuple*kw表示關鍵字引數,它是乙個*dict。並且同時使用*args和kw時,必須*args引數列要在kw前,*像foo(a=1, b=』2』, c=3, a』, 1, none, )這樣呼叫的話,會提示語法錯誤「syntaxerror: non-keyword arg after keyword arg」。

另:ifname== 『main』:**的作用:

乙個python的檔案有兩種使用的方法,第一是直接作為指令碼執行,第二是import到其他的python指令碼中被呼叫(模組重用)執行。因此ifname== 『main』: 的作用就是控制這兩種情況執行**的過程,在ifname== 『main』: 下的**只有在第一種情況下(即檔案作為指令碼直接執行)才會被執行,而import到其他指令碼中是不會被執行的。

在上面的例子程式中,如果程式被寫成 foo.py,在命令列,執行python foo.py 時,輸出:

args =  (1, 2, 3, 4)

kwargs = {}

---------------------------------------

args = ()

kwargs =

---------------------------------------

args = (1, 2, 3, 4)

kwargs =

---------------------------------------

args = ('a', 1, none)

kwargs =

---------------------------------------

而在python環境下, 執行from foo import foo 時,則只執行了ifname== 『main『:之前的**, 需要輸入foo(1,2,3)才有輸出:

args =  (1, 2, 3)

kwargs = {}

---------------------------------------

但如果程式去掉ifname== 『main『:這句**,被寫成foo1.py

再執行 from foo1 import foo 時,則得到

args =  (1, 2, 3, 4)

kwargs = {}

---------------------------------------

args = ()

kwargs =

---------------------------------------

args = (1, 2, 3, 4)

kwargs =

---------------------------------------

args = ('a', 1, none)

kwargs =

---------------------------------------

python中顏色表示 python 中顏色的表示

33 0m 關閉所有屬性 33 1m 設定高亮度 33 4m 下劃線 33 5m 閃爍 33 7m 反顯 33 8m 消隱 33 30m 33 37m 設定前景色 字顏色 30 37 30 黑 31 紅 32 綠 33 黃 34 藍色 35 紫色 36 深綠 37 白色 33 40m 33 47m ...

python中如何表示 python中時間如何表示

python中有3種不同的時間表示法 1.時間戳 timestamp 是從1970年1月1日0時0分0秒開始的秒數 2.struct time 包含9個元素的tuple 3.format time 已經格式化好便於閱讀的時間 使用時間需要使用time模組 import time引入time模組 ti...

Python中怎麼表示次方

大家都知道,python可以用來做資料計算,那麼在python中,如何表示乘方呢?來看下面的例子 要計算 4 4 和5 5 的結果是分別多少,可以這樣寫 可以看到,輸出的結果分別是16 和 25。如果要計算4 4 4 4相乘,或者2 2 2 2 2 2 2相乘是多少,用上述的辦法很繁瑣,我們要怎麼實...