Giu*_*pox 1 python ellipsis python-3.x
有没有办法获得python的Ellipsis类型?我看到了这样做type(Ellipsis)并type(...)返回<class 'ellipsis'>,但是通过编写x = ellipsis()它似乎 ifellipsis不是默认定义的数据类型 ( NameError: name 'ellipsis' is not defined)。
我认为builtins内置模块可以为我的问题提供解决方案,但以下内容也会引发错误。
import builtins
_ellipsis = builtins.ellipsis # AttributeError: module 'builtins' has no attribute 'ellipsis'
Run Code Online (Sandbox Code Playgroud)
我真正需要的是做这样的事情:
from typing import Union
def f(x: Union[str, type(...)]):
pass
Run Code Online (Sandbox Code Playgroud)
显然以前的作品,但我想有一个更漂亮的解决方案,只是 type(...)
根据文档:
Ellipsis与省略号文字“...”相同。特殊值主要与用户定义的容器数据类型的扩展切片语法结合使用。
Ellipsis是types.EllipsisType类型的唯一实例。
因此,在 Python 3.10 (!) 中,您可以使用types.EllipsisType来表示这种类型。
否则,您可以像这样定义自己的变量:
EllipsisType = type(...)
Run Code Online (Sandbox Code Playgroud)
然后在类型声明中使用它
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |