From 51f3f1b7dce6d054891faf9959fc493e66e9f684 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Wed, 22 Jan 2003 01:39:06 +0000 Subject: [PATCH] SF patch #667730: More DictMixin Sebastien Keim pointed out that iterkeys and __contains__ require their own definitions so their behavior will update when the underlying method is subclassed. --- Lib/UserDict.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Lib/UserDict.py b/Lib/UserDict.py index 34ceb3a09b..f9ad47109f 100644 --- a/Lib/UserDict.py +++ b/Lib/UserDict.py @@ -90,13 +90,15 @@ class DictMixin: except KeyError: return False return True - __contains__ = has_key + def __contains__(self, key): + return self.has_key(key) # third level takes advantage of second level definitions def iteritems(self): for k in self: yield (k, self[k]) - iterkeys = __iter__ + def iterkeys(self): + return self.__iter__() # fourth level uses definitions from lower levels def itervalues(self): -- 2.40.0