Message284546
As the title, but I think it should also continue if only the right operand is a sequence since the right operand could get a __radd__ to do the concatenation:
>>> class S:
... def __init__(self):
... self.v = list(range(10))
... def __radd__(self, other):
... print('in __radd__')
... self.v.extend(other)
... return self.v
... def __getitem__(self, idx):
... return self.v[idx]
>>> def i():
... yield from range(10, 20)
>>> i() + S()
in __radd__
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> operator.concat(i(), S())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'generator' object can't be concatenated
>>> a = i()
>>> a += S()
in __radd__
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> a = i()
>>> operator.iconcat(a, S())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'generator' object can't be concatenated |
|
Date |
User |
Action |
Args |
2017-01-03 09:58:30 | xiang.zhang | set | recipients:
+ xiang.zhang |
2017-01-03 09:58:30 | xiang.zhang | set | messageid: <1483437510.5.0.880271510583.issue29139@psf.upfronthosting.co.za> |
2017-01-03 09:58:30 | xiang.zhang | link | issue29139 messages |
2017-01-03 09:58:30 | xiang.zhang | create | |
|