强制关键词参数
1.放在*号后面的参数必须使用关键词来传递;
# coding=utf-8
def add(*,a,b):
return a+b
# 只能作为关键词参数使用
print(add(a=1,b=3))
#这种写法会报错
print(add(1,3))
报错如下:
Traceback (most recent call last):
File "D:/2021/1217/Test/强制关键词参数.py", line 7, in <module>
print(add(1,3))
TypeError: add() takes 0 positional arguments but 2 were given
2.放在/前面的参数只能作为位置参数传递,不能使用关键词;
# coding=utf-8
def f(a,b,/):
return a+b
# 只能作为位置参数
print(f(1,3))
# 这种写法会报错
print(f(a=1,b=3))
报错如下:
Traceback (most recent call last):
File "D:/2021/1217/Test/强制关键词参数.py", line 7, in <module>
print(f(a=1,b=3))
TypeError: f() got some positional-only arguments passed as keyword arguments: 'a, b'