亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Verwenden Sie Metaklassen

Es ist endlich Zeit, Metaklassen zu verwenden, aber im Allgemeinen verwenden wir sie überhaupt nicht. Wie Tim Peters, der Leiter der Python-Community, sagte:

Metaklassen sind die Magie der Tiefe, 99 % davon Benutzer sollten sich darüber überhaupt keine Sorgen machen müssen. Wenn Sie sich fragen, ob Sie eine Metaklasse ben?tigen, brauchen Sie sie nicht. Wer Metaklassen tats?chlich verwendet, wei? genau, was sie tun müssen und muss nicht erkl?ren, warum sie überhaupt verwendet werden.

Der Hauptzweck von Metaklassen ist die Erstellung von APIs. Ein typisches Beispiel ist Django ORM. Sie k?nnen es so definieren:

class Person(models.Model):
    name = models.CharField(max_length=30)
    age = models.IntegerField()

Aber wenn Sie dies tun:

guy  = Person(name='bob', age='35')
print guy.age

wird kein IntegerField-Objekt zurückgegeben, sondern ein int, oder sogar direkt Daten von abrufen die Datenbank. Dies ist m?glich, weil models.Model __metaclass__ definiert und mit etwas Magie die einfache Person-Klasse, die Sie gerade definiert haben, in einen komplexen Hook für die Datenbank umwandelt. Das Django-Framework vereinfacht diese scheinbar komplexen Dinge, indem es mithilfe von Metaklassen eine einfache API bereitstellt, über die der Code neu erstellt wird und die eigentliche Arbeit hinter den Kulissen erledigt wird.

Alles in Python ist ein Objekt, sie sind entweder eine Instanz einer Klasse oder einer Metaklasse, au?er Typ. type ist eigentlich eine eigene Metaklasse, was in einer reinen Python-Umgebung nicht m?glich ist. Dies geschieht durch einige Tricks auf der Implementierungsebene.

Weiter lernen
||
einreichenCode zurücksetzen