Exkurs startenWas ist falsch an dieser einfachen Python-Metaklasse?
Ich habe gerade erfahren, was metaclasses in Python sind. Ich glaube nicht, dass die Schöpfer von Python wollten, dass jeder sie benutzt. Ich meine, nennen Sie etwas eine Metaklasse, die in den meisten Fällen keine Klasse ist, reicht aus, um die meisten Menschen von diesem Konzept abzubringen!
Exkurs Ende
Auf meine Frage. Ich habe diese einfache Metaklasse geschrieben, um allen Klassen, die im Modul erstellt wurden, eine Standarddokument-Zeichenkette hinzuzufügen. Aber es funktioniert nicht:
def metest(cls,name,bases,dict):
cls.setattr(cls,'__doc__',"""Default Doc""")
return type(cls,(),{})
__metaclass__=metest
class test(object):
pass
print test.__doc__
t=test()
print t.__doc__
Ausgang:
None
None
Was mache ich falsch?
Es _is_ ist möglich, eine globale Metaklasse zu verwenden, erben Sie einfach nicht von 'object' –
Wer sollte nicht von Objekt erben? Die Metaklasse oder ALLE Klassen im Modul? – ritratt