Heim > Artikel > Backend-Entwicklung > Python objektorientiert
Mitglieder in der Klasse
1. Felder
1. Statische Felder Der Zugriff auf statische Felder über die Klasse selbst wurde bereits erstellt, als der Klassencode geladen wurde, ohne darauf warten zu müssen neuer Klassenname()
2. Auf gewöhnliche Felder wird über Objekte zugegriffen
2. Methoden
Alle Methoden gehören zur Klasse
1. Gewöhnliche Methoden Sie können nur zuerst Objekte der Klasse erstellen und dann
über das Objekt def show(self) aufrufen: self ist das Klassenobjekt, das automatisch die aufrufende Methode
print(self.name) übergibt.
2. Statische Methode statisch Der Methodenaufruf hängt von keinem Objekt ab. Er wird über den Klassennamen Methodenname () aufgerufen, wodurch Speicher gespart wird. und die Parameter müssen nicht selbst sein.
@staticmethod
def f1():
pass
3. Klassenmethode (Sonderform der statischen Methode)
@classmethod
def f1(cls): cls übergibt automatisch den Klassennamen dieser Methode
pass
3 . Attribute
Enthält zwei Formen von Feldern und Methoden in der Klasse
@property //Property-Deklaration
def all_page(self): def all_page(self):
return 100 return 100
@all_page.setter all_page muss eine unter dem Dekorator @property definierte Funktion sein Wert ):
pass
obj.all_page = 100 //Methode automatisch unter dem Setter-Dekorator aufrufen
@all_page.deleter
def all_page(self):
pass
del obj.all_page // Rufen Sie die Methode automatisch unter dem Löschdekorator auf
obj.all_page ruft es direkt wie ein Feld auf. Ruft den Rückgabewert der Funktion ab
obj.all_page() Methodenaufruf Wenn das Objekt eine Methode aufruft, muss ihm ()
Mitgliedsmodifikatoren
Die Standardfeld- und Methodennamen sind öffentlich. Wenn Sie __ vor den Feldern und Methoden hinzufügen, wird das __name-Feld zu einem privaten Mitglied
Die speziellen Mitglieder der Klasse
obj=Foo() Rufen Sie die integrierte Methode __init__ in der Foo-Klasse auf und erstellen Sie ein obj-Objekt
(obj ist das Objekt) obj.__dict__ Konvertiert alle von einem beliebigen Objekt gekapselten Daten in dict (Pager ist eine Klasse) Pager.__dict__ Konvertiert die in einer beliebigen Klasse enthaltenen Mitgliedsinformationen in dict __getitem__(self,item) __setitem(self,key,value) __delitem__(self,key) Funktion:
obj = Foo() obj['aa'] #Automatisch aufrufen __getitem__ in der Foo-Klasse obj['aa']=22 __setitem__ del obj['aa'] #Automatisch die Funktion __delitem__ __iter__ in der Foo-Klasse aufrufen Ein Objekt kann standardmäßig nicht iteriert werden. Wenn die Klasse, in der sich das Objekt befindet, die Funktion __iter__ definiert, kann dieses Objekt
isinstance ret=isinstance (obj,Foo) Überprüfen Sie, ob das Objekt obj eine Foo-Klasse oder Foo ist. Das Objekt der übergeordneten Klasse
issubclass ret=issubclass(Foo,Bar)
Der funktionale Unterschied zwischen Super und Decorator (zur Codeerweiterung)
1. Sie können Dekoratoren verwenden, um Ihren eigenen Code zum ursprünglich von anderen geschriebenen Funktionsausführungsprozess hinzuzufügen. Sie müssen jedoch der Funktion
in der Quellcodedatei einen Dekorator-Syntaxzucker hinzufügen .
2. Mit dem Super- und Reflection-Mechanismus können Sie eine Unterklasse hinzufügen, um die ursprünglich von anderen geschriebene Klasse zu erben, ohne den Originalcode überhaupt zu ändern. Fügen Sie sie in der benutzerdefinierten Methode der
hinzu super(cls).func, um die ursprüngliche Funktion zum vorhandenen Code hinzuzufügen, um eine Erweiterung der Codefunktion zu erreichen.
model = __import__(Path,fromlist=True) Pfad ist die Zeichenfolge des gelesenen Konfigurationselements
cls = getattr(model,ClassName) ClassName ist die Zeichenfolge des gelesenen Konfigurationselements
obj = cls()
obj.f1() Rufen Sie bestimmte Funktionen in der Python-Klasse dynamisch im Formular auf von Saiten.