python ひとり暗黒魔法勉強会
ひとり暗黒魔法勉強会。
ネタは
- interface
- ___metaclass___
特に__metaclass__は魔法。
DIを使用せず__metaclass__でAOPできないかなと模索。
まだ暗黒魔法ってほどじゃないけどインスタンスを継承。
元ネタはzope.interfaceより
import sys class A(object): def __init__(self, name, attr=None, __doc__=None, __module__=None): self.__name__ = name if not __module__: __module__ = sys._getframe(1).f_globals self.__module = __module__ self.__bases__ = () def test(self): print self.__name__ def __call__(self): pass AB = A("AB") AB.test() class B(AB): pass b = B() print dir(b)
ふつーに考えると気持ち悪い。
これを踏まえて自分なりにinterfaceを作ったりして理解を深めよう。
うくく。