Почему при добавлении двух счетчиков со значениями timedelta возникает ошибка TypeError? - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь добавить два счетчика, которые содержат timedeltas. Добавление счетчиков приводит к следующему:

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 голосов
/ 12 мая 2019

Несколько вещей мешают:

  1. Counter предназначен для дискретного счета, то есть значения являются целыми числами.
  2. timedeltas не определяют, что значит сравнивать с нулем, хотя они могли бы иметь.

Похоже, вам нужно будет создать свою собственную структуру, подобную Counter.

...