Support for augmented assignment in the UserList, UserDict, UserString and

rfc822 (Addresslist) modules. Also a preliminary testcase for augmented
assignment, which should actually be merged with the test_class testcase I
added last week.
This commit is contained in:
Thomas Wouters 2000-08-24 20:14:10 +00:00
parent 434d0828d8
commit 104a7bcc28
6 changed files with 327 additions and 1 deletions

View file

@ -763,6 +763,13 @@ class AddressList(AddrlistClass):
newaddr.addresslist.append(x)
return newaddr
def __iadd__(self, other):
# Set union, in-place
for x in other.addresslist:
if not x in self.addresslist:
self.addresslist.append(x)
return self
def __sub__(self, other):
# Set difference
newaddr = AddressList(None)
@ -771,6 +778,13 @@ class AddressList(AddrlistClass):
newaddr.addresslist.append(x)
return newaddr
def __isub__(self, other):
# Set difference, in-place
for x in other.addresslist:
if x in self.addresslist:
self.addresslist.remove(x)
return self
def __getitem__(self, index):
# Make indexing, slices, and 'in' work
return self.addresslist[index]