collections.pyのnamedtupleが凄いの話
しかしcollections.pyのnamedtupleのところ見ると目を疑いたくなる
— 芦屋ひろ (@kk6) September 28, 2012
こんなツイートを数日前に見つけた。脊髄反射的にcollections.pyを見に行ったら、確かに凄くて色んな意味で感動した。見てもらえれば、分かると思うけど、端的に言うと下記のような事をしてた。 そういえば標準モジュールとか中身全然見た事なかったので、ちょこちょこ見てみようと思った。
# -*- coding: utf-8 -*- classname = "Saiyan" saiyan_name = "Kakarot" template = """ # -*- coding: utf-8 -*- class %(classname)s(object): def __init__(self, name): self.name = name def say_hello(self): return 'Hello! My Name is ' + self.name kakarot = %(classname)s("%(saiyan_name)s") """ % locals() try: exec template except SyntaxError as e: raise SyntaxError(e) print kakarot.say_hello() #=> Hello! My Name is Kakarot raditz = Saiyan("Raditz") print raditz.say_hello() #=> Hello! My Name is Raditz