python: 省略号的注释是函数的可能参数

python: annotation for ellipsis to be a possible argument of a function

出于“某些原因”,我想允许 python 的省略号“...”(也)成为某个函数(比方说)f 的参数,例如如下:

def f(arg: ?) -> None:
    print(arg)

f(...)

我应该为 arg 使用什么注释?

...Ellipsis class 的一个实例,所以你可以这样做:

def f(arg:Ellipsis) -> None:
    # your code

由于只有一个 class 实例,您可能希望将它与其他一些类型结合使用。否则为什么要有一个参数(是否可以通过临时设置一个不可用的类型来检测所有对函数的调用f

看来(参见 python 文档:https://docs.python.org/3/library/constants.html#Ellipsis

from types import EllipsisType

def f(arg: EllipsisType):
    print(arg)

f(...)  # or alternatively f(Ellipsis)

这里是正确的解决方案(即注释省略号本身)