Python的参数类型一共有5种:POSITIONAL_OR_KEYWORD、VAR_POSITIONAL、VAR_KEYWORD、KEYWORD_ONLY、POSITIONAL_ONLY
其中 POSITIONAL_OR_KEYWORD、VAR_POSITIONAL、VAR_KEYWORD、KEYWORD_ONLY 比较常用
一个星开头的*args 代表位置参数VAR_POSITIONAL
def say_hello(*args):
print('hello {0}'.format(args))
# 通过位置传值
say_hello('jack', 'tom')
两个星开头,**kwargs,代表关键字参数VAR_KEYWORD
def func_b(**kwargs):
print(kwargs)
# 通过关键字传值
func_b(a=1, b=2)
默认参数类型,既可以传入位置,也可以关键字传入POSITIONAL_OR_KEYWORD
def say_hello(name):
print('hello {0}'.format(name))
# 通过位置传值
say_hello('jack')
# 通过关键字传值
say_hello(name='tom')
当前面出现位置参数VAR_POSITIONAL,后面再出现的参数只能用关键字参数。
def func_b(*args, a, b):
print(args, a, b)
# 只能通过关键字传值
func_b('test', a=1, b=2)