Message289779
For now len() raises ValueError if __len__() returns small negative integer and OverflowError if __len__() returns large negative integer.
>>> class NegativeLen:
... def __len__(self):
... return -10
...
>>> len(NegativeLen())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: __len__() should return >= 0
>>> class HugeNegativeLen:
... def __len__(self):
... return -sys.maxsize-10
...
>>> len(HugeNegativeLen())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: cannot fit 'int' into an index-sized integer
Proposed patch makes it always raising ValueError. |
|
Date |
User |
Action |
Args |
2017-03-17 19:52:14 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, vstinner, Oren Milman |
2017-03-17 19:52:14 | serhiy.storchaka | set | messageid: <1489780334.51.0.943711507872.issue29839@psf.upfronthosting.co.za> |
2017-03-17 19:52:14 | serhiy.storchaka | link | issue29839 messages |
2017-03-17 19:52:14 | serhiy.storchaka | create | |
|