Python中如何判断值是否为Ellipsis(省略号)?
判断值是否为Ellipsis的优雅实现方法
为什么原写法报错
isinstance()的第二个参数要求是类型对象(或类型组成的元组),但Ellipsis是ellipsis类的唯一实例,并非类型本身,所以直接传入Ellipsis或...会抛出TypeError。
推荐解决方案
1. 用is直接判断(优先推荐)
由于Ellipsis是Python的单例对象,用is判断是最直观、高效的方式:
customer_ids_map = { "1": "aaa", "2": ..., } # 检查值是否为Ellipsis if customer_ids_map["2"] is Ellipsis: # 也可以用更简洁的写法:if customer_ids_map["2"] is ...: print("该值是Ellipsis")
2. 统一类型检查场景下的isinstance用法
如果需要和其他类型检查逻辑统一使用isinstance(),可以传入Ellipsis的类型对象:
# 方法一:通过type(...)获取类型 print(isinstance(..., type(...))) # 输出True # 方法二:Python 3.10+ 可使用types模块的EllipsisType import types print(isinstance(..., types.EllipsisType)) # 输出True
内容的提问来源于stack exchange,提问作者Kirill Ilichev
相关产品推荐
相关产品推荐

