定义函数
def f_name():
pass
位置参数(positional argument)
def add(a,b):
return a+b
# 按照默认位置顺序:a=3,b=4
print(add(3,4)) # 7
# 不按照默认位置顺序:a=4,b=3
print(add(b=3,a=4)) # 7
关键字参数(keyword argument)
关键字参数的形式为 kwarg=value
# 带有默认参数值的函数
def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
print("-- This parrot wouldn't", action, end=' ')
print("if you put", voltage, "volts through it.")
print("-- Lovely plumage, the", type)
print("-- It's", state, "!")
parrot(1000) # 1 positional argument
parrot(voltage=1000) # 1 keyword argument
parrot(voltage=1000000, action='VOOOOOM') # 2 keyword arguments
parrot(action='VOOOOOM', voltage=1000000) # 2 keyword arguments
parrot('a million', 'bereft of life', 'jump') # 3 positional arguments
parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 keyword
可变参数(*args和**kwargs)
*args
将多余的位置参数封装为元组,**kwargs
将关键字参数封装为字典,**kwargs
必须放在 *args
的后面。
def many(a,*args,**kwargs):
print(a)
print(args)
print(kwargs)
many(1,2,3,name="Mike",job="programmer")
# 1
# (2, 3)
# {'name': 'Mike', 'job': 'programmer'}