为什么添加两个带有timedelta值的Counter会引发TypeError?

时间:2019-05-12 15:36:21

标签: python python-3.x python-datetime python-collections

我正在尝试添加两个包含timedelta的计数器。添加计数器会引发以下情况:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python/3.7.2/Frameworks/Python.framework/Versions/3.7/lib/python3.7/collections/__init__.py", line 734, in __add__
    if newcount > 0:
TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int'

这引发了异常:

from collections import Counter
from datetime import timedelta
a = Counter(time=timedelta(microseconds=167242))
a + a

但这不是:

b = timedelta(microseconds=167242)
b + b

1 个答案:

答案 0 :(得分:0)

一些事情正在发生:

  1. Counter用于进行离散计数,即值是整数。
  2. timedeltas并未定义与零进行比较意味着什么,尽管它们可能有。

看起来您需要做自己的类似Counter的结构。