*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相乘是多少,用上述的辦法很繁瑣,我們要怎麼實...