Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Job Security (in Python) (Christopher Neugebauer)

Job Security (in Python) (Christopher Neugebauer)

Avatar for PyCon Canada

PyCon Canada

August 25, 2013
Tweet

More Decks by PyCon Canada

Other Decks in Education

Transcript

  1. >>> c = Collection() >>> c.set_spam(“eggs”) Traceback (most recent call

    last): File "<stdin>", line 1, in <module> File "<stdin>", line 10, in __getattribute__ TypeError: instancemethod expected at least 2 arguments, got 0
  2. Help on Collection in module __main__ object: class Collection(Magic) |

    Method resolution order: | Collection | Magic | __builtin__.object | | Methods defined here: | | get_spam(self) | | set_spam(self, default)
  3. TRANSLATE = (("get","_bork_"), ("set","_bork_"), ("canhas" , "get"), ("ihasa" , "set"))

    class Magic(object): def __getattribute__(self, attribute): oa = attribute for (key,val) in TRANSLATE: attribute = attribute.replace(key, val) try: return object. __getattribute__(self,attribute) except AttributeError: return type(object. __getattribute__(self, oa))