首先来看一下位置参数:
def per(name, sex, age):
print(name, sex, age)
per( 'bpc' , 'man' , 26 )
#bpc man 26
print(name, sex, age)
per( 'bpc' , 'man' , 26 )
#bpc man 26
代码中有三个位置参数,我们在调用中在相应位置传递对应值即可,而如果想把参数指定为
keyword-only,
可以在带
*
的后面声明参数,这样就可以实现带
*
参数后面的参数为
keyword-only
参数,如:
def per(name, *sex, age):
print(name, sex, age)
print(name, sex, age)
per('bpc', 'man', age=26)
#bpc ('man',) 26
#bpc ('man',) 26
注:只所以第二个打印带括号,是因为带*参数表示列表参数
也可以写成:
def per(name, sex, *, age):
print(name, sex, age)
print(name, sex, age)
per('bpc', 'man', age=26)
#bpc man 26
另外 keyword-only arguments 还需要注意与列表参数进行区分,列表参数的 "*" 号是紧跟参数的,而非独占一个位置,且列表参数可以传零至多个值,强制性关键字参数在传值时不可以缺省(除非其有默认值),且必须使用关键字赋值。