dummyObjectとかを作るとき
テストの時、モデルに対応したオブジェクト作るの面倒。
dummy objectとか使う。
class ObjectLike(dict): def __getattr__(self, k, default=None): # default is not used return self[k] def __setattr__(self, k, v): self[k] = v book = ObjectLike(author=ObjectLike(first_name="foo", last_name="bar"), title="BooBOoBoo") book.price = 200 print book print book.author print book.title # > {'price': 200, 'title': 'BooBOoBoo', 'author': {'first_name': 'foo', 'last_name': 'bar'}} # > {'first_name': 'foo', 'last_name': 'bar'} # > BooBOoBoo
method呼びだしなどを模倣したいときとか。
#foo.bar.baz(1, 2) # => 3 class foo(object): class bar(object): @staticmethod def baz(x, y): return x + y print foo.bar.baz(1, 2) # > 3
検索などが入るとこれだけだと足りなくなる。