奇怪,为什么这里的person可以有4个参数
Topic source这段代码一开始是定义了两个位置参数,两个命名关键字参数,
def person(name, age, *, city, job): print(name, age, city, job) name 和age是位置参数,然后city和job是命名关键字参数, person('Jack', 24, city='Beijing', job='Engineer') 这样子代入实参是对的, person('Jack', 24, 'Beijing', 'Engineer') 这样子代入实参是错的。 也就是说命名关键词参数代入是不能省略,必须指出city='GuiLin,否则Python会有歧义,就会报错。
- 1
YY天很晴
命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错:
但是后面
使用命名关键字参数时,要特别注意,如果没有可变参数,就必须加一个作为特殊分隔符。如果缺少,Python解释器将无法识别位置参数和命名关键字参数:
def person(name, age, city, job):
pass
这段运行就没问题,不是都是未知参数嘛,求明白的解答下呗~~