Get rid of dict.has_key(). Boy this has a lot of repercussions!

Not all code has been fixed yet; this is just a checkpoint...
The C API still has PyDict_HasKey() and _HasKeyString(); not sure
if I want to change those just yet.
This commit is contained in:
Guido van Rossum 2006-08-18 22:13:04 +00:00
parent d2dbecb4ae
commit e2b70bcf74
93 changed files with 215 additions and 313 deletions

View file

@ -41,7 +41,6 @@ def iteritems(self): return self.data.iteritems()
def iterkeys(self): return self.data.iterkeys()
def itervalues(self): return self.data.itervalues()
def values(self): return self.data.values()
def has_key(self, key): return self.data.has_key(key)
def update(self, dict=None, **kwargs):
if dict is None:
pass
@ -55,11 +54,11 @@ def update(self, dict=None, **kwargs):
if len(kwargs):
self.data.update(kwargs)
def get(self, key, failobj=None):
if not self.has_key(key):
if key not in self:
return failobj
return self[key]
def setdefault(self, key, failobj=None):
if not self.has_key(key):
if key not in self:
self[key] = failobj
return self[key]
def pop(self, key, *args):
@ -91,14 +90,12 @@ class DictMixin:
def __iter__(self):
for k in self.keys():
yield k
def has_key(self, key):
def __contains__(self, key):
try:
value = self[key]
except KeyError:
return False
return True
def __contains__(self, key):
return self.has_key(key)
# third level takes advantage of second level definitions
def iteritems(self):