建设营销型网站的目的,宗学华 网站建设,自己搭建的ftp怎么做网站,三亚本地网在python3.8之后函数参数中允许出现/和*号#xff0c;/用来指明某些函数形参必须使用位置参数而非关键字参数的形式#xff0c;*出现在函数参数中第一种含义可以表示为可变参数#xff0c;一般写作*args#xff1b;对于单独出现在参数中的*参数#xff0c;则表示#xff…在python3.8之后函数参数中允许出现/和*号/用来指明某些函数形参必须使用位置参数而非关键字参数的形式*出现在函数参数中第一种含义可以表示为可变参数一般写作*args对于单独出现在参数中的*参数则表示*后面的参数必须为关键字参数的形式接下来详细说下该用法
1 /参数的用法
如果你想要函数的调用者在某个参数位置只能使用位置参数而不能使用关键字参数传参那么你只需要在所需位置后面放置一个/。
def f1(a, b, /):
return a b
对于上面这个函数而言调用f1时参数ab只能是特定的值而不能以关键字传参即f1(2, 3)执行正确而f1(a2, 3)和f1(2, b3)将执行错误。
2 *参数的用法
对于*的第一种用法比较常见这里不再详述这里主要详细解释*的第二种用法。如果你希望强迫调用者使用某些参数且必须以关键字参数的形式传参那么你只需要在所需位置的前一个位置放置一个*。
def f1(a, *, b, c):
return a b c
对于上面这个函数而言调用时参数a可以任意值, 但b,c参数一定要以关键字参数的形式传参如f1(1, b4, c5),否则将会报错。
def f2(a, *, b, c5):
return a b c
如果是这种情况下调用函数参数a可以任意值但参数b一定要以关键字参数的形式传参如f2(2, b3),但是如果想传入c参数那么c参数的要求和b参数一样都为关键字参数形式如f2(2,b3,c4)。
3 /和*都出现在函数参数中
比如我们定义一个函数f
def f(a, b, /, c, *, d, e):
print(a, b, c, d, e)
当我们调用函数f时a,b参数可以为任意型python所支持的值就是不能以关键字形式传参c可以为任意型python所支持的值d,e只能以关键字参数传参。以下调用方式均会抛出异常
f(a1, 2, c3, d4, e5) # a不能以关键字参数传参
f(1, 2, 3, 4, e5) # d只能以关键字参数传参
4 总结
如果你希望调用者使用函数时一定不能使用关键字参数传参那么只需要把这些参数放在/前即可如果你希望调用者使用函数时一定要使用某些参数且必须为关键字参数传参那么只需要把这些参数放在*后面即可。