Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

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を作ったりして理解を深めよう。

うくく。