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
最終更新:2006年03月21日 09:12