省略号的类型提示

Kyl*_*yle 7 python ellipsis type-hinting python-3.x

如何为需要文字Ellipsis(或...)作为参数的函数指定类型提示?与 类比None,我很想写这样的东西:

def f(x: Ellipsis):
    return

f(Ellipsis)
Run Code Online (Sandbox Code Playgroud)

mypy然而,如果我运行这个,我会得到:

1: error: Variable "builtins.Ellipsis" is not valid as a type
Run Code Online (Sandbox Code Playgroud)

mypy对以下内容感到满意:

import builtins

def f(x: builtins.ellipsis):
    return


f(Ellipsis)
Run Code Online (Sandbox Code Playgroud)

但这在运行时失败:

AttributeError: module 'builtins' has no attribute 'ellipsis'.
Run Code Online (Sandbox Code Playgroud)

Kyl*_*yle 6

根据jsbueno的建议,从 python 3.10 开始,以下内容有效:

from types import EllipsisType


def f(x: EllipsisType):
    return

f(Ellipsis)
Run Code Online (Sandbox Code Playgroud)