In [1]:
# *args 代表不確定數量的 non-keyword arg
# 這個語法的重點是 *,後面可以接任何名稱,例如 *dummy 也代表參數群
def f1(*args):
for x in args:
print x
In [2]:
f1('hello', 'my', 'world')
In [3]:
f1('hello', y = 'my', 'world') # 只有 *args 卻指定參數名稱,會造成錯誤
In [4]:
# **kwargs 代表不確定數量的 keyword arg
# 語法的重點是 **,後面名稱可以改成 **dummy
def f2(**kwargs):
for x in kwargs:
print x, kwargs[x]
In [5]:
f2(x = 1, y = "hello", z = [1, 2, 3])
In [6]:
f2("good", x = 3) # 只有 **kwargs 卻沒有指定參數名稱,會造成錯誤
In [7]:
def f3(*args, **kws):
for x in args:
print "[] = ", x
for x in kws:
print "[", x, "] = ", kws[x]
In [8]:
f3('hello', z = 54, g = [1, 3], 'my word') # non-keyword arg 要放前面
In [9]:
f3('hello', 'my world', x = 43, z = [1, 4])
In [ ]: