Remove the __iter__ method from the UserDict class -- it can silently

break old code (in extreme cases).  See SF bug #448153.

Add a new subclass IterableUserDict that has the __iter__ method.

Note that for new projects, unless backwards compatibility with
pre-2.2 Python is required, subclassing 'dictionary' is recommended;
UserDict might become deprecated.
This commit is contained in:
Guido van Rossum 2001-08-07 17:40:42 +00:00
parent 528b7eb0b0
commit 2050b65e84

View file

@ -47,5 +47,7 @@ class UserDict:
return self.data.popitem()
def __contains__(self, key):
return key in self.data
class IterableUserDict(UserDict):
def __iter__(self):
return iter(self.data)