pocari @Wiki メタクラス:Python



更新履歴
取得中です。


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Pythonのメタクラス。
メタクラスを使うと、色々できる。
PythonにはJavaのようなインターフェースはないが、
インターフェースを継承させて、
メソッドがなかったらエラーをだすようなこともできる。

class test(type):
   def __init__(cls,name,bases,dict):
       #super(test,cls).__init__(name,bases,dict)
       print cls
       print name
       print bases
       print dict
       if dict.has_key("__implements__"):
           for m in dict["__implements__"].__dict__:
               if m[0]!="_":
                   print m,dict.has_key(m)
class c1:
   def ok(self):
       return
class interface:
   __metaclass__=test
class inter01(interface):
   def test(self):
       print "inter01"
class a1(inter01):
   __implements__=inter01
   def test(self):
       ok
   pass