提问人:Oblomov 提问时间:4/19/2023 最后编辑:Oblomov 更新时间:4/19/2023 访问量:53
按非整数切片和类型检查
Slicing by non-integers and type checking
问:
我正在处理时间序列,并希望按日期/时间检索和切片。理想情况下,我会利用现有的 [:] 语法。
例如(见最后一行):
from datetime import datetime
from typing import Union
class T:
def __getitem__(self, key: datetime | slice) -> Union['T', float]:
if isinstance(key, slice):
return T()
if isinstance(key, datetime):
return 42
raise ValueError()
t = T()
v = t[datetime(2020, 1, 1)] # OK
t2 = t[datetime(2020, 1, 1):datetime(2021, 1, 1)] # Not OK
这运行良好,但是当通过 mypy 运行它时,它会在最后一行产生以下错误:
error: Slice index must be an integer, SupportsIndex or None [misc]
Found 1 error in 1 file (checked 1 source file)
除了完全禁用此错误之外,有没有一种方法可以使此代码通过mypy?
还是我在做一些我不该做的事情?
答: 暂无答案
上一个:JSONPath 表达式中以给定字符开头的筛选器和输出值
下一个:分割线提取信息
评论
slice
slice