[Python-Dev] Accessing globals without dict lookup (original) (raw)
Guido van Rossum guido@python.org
Fri, 08 Feb 2002 16:19:54 -0500
- Previous message: [Python-Dev] Accessing globals without dict lookup
- Next message: [Python-Dev] Accessing globals without dict lookup
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Guido van Rossum writes: > Oops, I was indeed confused. I think I meant this: > > def keys(self): _> return [k for k, c in self.dict.iteritems() if c.objptr is not NULL]
Was I not clear, or am I missing something entirely?
I'm guessing both. ;-)
keys() needs no special treatment, but items() and values() do:
class celldict(object): ... def keys(self): _return self.dict.keys()
Wrong. keys() does need special treatment. If c.objptr is NULL, the cell exists, but keys() should not return the corresponding key. This is so that len(x.keys()) == len(x.values()), amongst other reasons!
def items(self): _return [k, c.objptr for k, c in self.dict.iteritems() if c.objptr is not NULL]
def values(self): _return [c.objptr for c in self.dict.itervalues() if c.objptr is not NULL]
Yes, these are correct.
--Guido van Rossum (home page: http://www.python.org/~guido/)
- Previous message: [Python-Dev] Accessing globals without dict lookup
- Next message: [Python-Dev] Accessing globals without dict lookup
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]