> 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/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4