下面这张图非常好的总结了python中函数各类参数的排列位置,我们总结一下,可以分成四个层级,从前往后分别是:
1.位置参数(Positional Arguments)
2.可选(含默认值)参数(Optional Arguments/Default Auguments)
3.不定长位置参数(Variable Optioncal Arguments)
4.不定长关键字参数(Varialbe Keyword Arguments)
我们可以通过inspect模块中的signature方法来查看函数中各个参数的类型
from inspect import signature
def f(a,b=2,*c,**d):
print(f'a:{a},b:{b},c:{c},d:{d}')
for name,val in signature(f).parameters.items():
print(name,val.kind)
输出的结果如下:
a POSITIONAL_OR_KEYWORD
b POSITIONAL_OR_KEYWORD
c VAR_POSITIONAL
d VAR_KEYWORD
我们在使用python函数的时候,经常会碰到报错(Trackback blabla)的情况,我们常见的有以下六类:
-SyntaxError: positional augument follows keyword argument
-SyntaxError: non-default argument follows default argument
-Sy