Python 函数、类与作用域深度解析
1. 函数参数详解
1.1 位置与关键字参数冲突
在函数调用时,如果同时使用位置参数和关键字参数给同一个变量赋值,会引发错误。例如:
# 错误示例
# 这里先通过位置参数将 1 赋给 a,2 赋给 b,又通过关键字参数将 3 赋给 b,导致冲突
# 代码中未给出函数定义,假设函数为 def func(a, b): pass
# func(1, 2, b=3) # 这行代码会引发 TypeError
1.2 显式位置/关键字参数
函数签名中可以使用 / 和 * 来明确指定参数是位置参数还是关键字参数。 / 左边的参数只能是位置参数, * 右边的参数只能是关键字参数,两者之间的参数可以是任意一种。示例如下:
def greet(name, /, title, *, punctuation):
return f"Hello {name}, {title}{punctuation}"
print(greet("Ricky", "Esq", punctuation="!"))
# 以下调用会报错,因为 '?' 不能作为位置参数传递给关键字参数位置
# greet("Ricky", "Esq", "?")
1.3 默认值参数
函数签名可以使用赋值运算符
Python函数、类与作用域精讲
超级会员免费看
订阅专栏 解锁全文
752

被折叠的 条评论
为什么被折叠?



