Message416962
Inspired by a question on comp.lang.python about how to deal with an int set composed of integers and ranges. Range objects like range(1,5,2) contain start, stop, and step values, but it's messy and potentially tricky to get the actual first and last values of the range. Examples:
range(1,5,2) - first = 1, last = 3
range (5, 1, 2) - range is empty, first = last = None
range(5, 1, -1) - first is 5, last is 2
Note in the case where the range is not empty, you can get the "last" by a messy calculation but it's easier to pick the first element from the reverse iterator. But then you might forget to catch the stopiteration exception in the case that the list is empty. The same goes for the first element, roughly. And constructing the iterators just to pick one element seems like unnecessary overhead.
So it is better to have actual methods for these, with type Optional[int]. Then mypy should remind you to check for the empty case if you forget. |
|
Date |
User |
Action |
Args |
2022-04-08 08:03:40 | phr | set | recipients:
+ phr |
2022-04-08 08:03:40 | phr | set | messageid: <1649405020.81.0.958587305451.issue47257@roundup.psfhosted.org> |
2022-04-08 08:03:40 | phr | link | issue47257 messages |
2022-04-08 08:03:40 | phr | create | |
|