batched-without-explicit-strict (B911)
源自 flake8-bugbear linter。
作用
检查 itertools.batched
调用是否缺少显式的 strict
参数。
为什么这不好?
默认情况下,如果可迭代对象的长度不能被 itertools.batched
的第二个参数整除,则最后一个批次将比其余批次短。
在 Python 3.13 中,添加了一个 strict
参数,允许控制批次是否必须具有统一的长度。如果批次的长度不统一,则传递 strict=True
会引发 ValueError
。否则,传递 strict=False
以明确意图。
示例
如果批次必须具有统一的长度,则改为使用此方法
或者如果批次的长度可以不统一,则使用此方法
已知偏差
与上游的 B911
不同,此规则不会报告无限迭代器(例如,itertools.cycle(...)
)。