
404
|
第
15
章
max(1, 2, -3) # 返回2
max(['Go', 'Python', 'Rust']) # 返回'Rust'
2.
提供了
key
,
但未提供
default
@overload
def max(__arg1: T, __arg2: T, *_args: T, key: Callable[[T], LT]) -> T:
...
# ...省略几行...
@overload
def max(__iterable: Iterable[T], *, key: Callable[[T], LT]) -> T:
...
输入可以是一个个单独的值,类型为
T
,或者是可迭代对象,类型为
Iterable[T]
,而且
key=
必须是可调用对象,接受同为
T
类型的参数,返回实现了
SupportsLessThan
协议的
值。
max
函数的返回值类型与实参相同。
下面是可匹配这两个重载签名的示例。
max(1, 2, -3, key=abs) # 返回–3
max(['Go', 'Python', 'Rust'], key=len) # 返回'Python'
3.
提供了
default
,
但未提供
key
@overload
def max(__iterable: Iterable[LT], *, key: None = ...,
default: DT) -> Union[LT, DT]:
...
输入值是一个可迭代对象,项的类型为实现了
SupportsLessThan
协议的
LT
。当可迭代对象 ...