Advertisement
Guest User

Untitled

a guest
Jul 24th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. >>> class odict(dict):
  2. ... def __init__(self, *args, **kw):
  3. ... super(odict,self).__init__(*args, **kw)
  4. ... self.itemlist = super(odict,self).keys()
  5. ... def __setitem__(self, key, value):
  6. ... # TODO: what should happen to the order if
  7. ... # the key is already in the dict
  8. ... self.itemlist.append(key)
  9. ... super(odict,self).__setitem__(key, value)
  10. ... def __iter__(self):
  11. ... return iter(self.itemlist)
  12. ... def keys(self):
  13. ... return self.itemlist
  14. ... def values(self):
  15. ... return [self[key] for key in self]
  16. ... def itervalues(self):
  17. ... return (self[key] for key in self)
  18. ...
  19. >>> od = odict(a=1,b=2)
  20. >>> print od
  21. {'a': 1, 'b': 2}
  22. >>> od['d']=4
  23. >>> od['c']=3
  24. >>> print od # look at the `__str__` and `__repr__` methods
  25. {'a': 1, 'c': 3, 'b': 2, 'd': 4}
  26. >>> print od.keys()
  27. ['a', 'b', 'd', 'c']
  28. >>> print od.values()
  29. [1, 2, 4, 3]
  30.  
  31. >>> dir(dict)
  32. ['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement