Klassenmethode gegen statische Methode in Python

Klassenmethode gegen statische Methode in Python
Sprechen wir über die Definition und Verwendung von Klassen- und statischen Methoden in Python.

Klassenmethode in Python

Die Klassenmethode ist mit der Klasse selbst und nicht mit irgendwelchen Klassenobjekten verknüpft. Außerdem sind nur Klassenvariablen dafür zugänglich. Die Änderung eines Wertes einer solchen Klassenvariablen wirkt sich auf alle Klassenobjekte aus. Wir deklarieren die Methode als Klassenmethode, wenn wir Klassenvariablen verwenden, während wir eine Technik implementieren. Die Klasse wird durch ein Schlüsselwort 'CLS' verwiesen, das der erste Parameter einer Klassenmethode ist. Bei der Arbeit mit Fabriktechniken verwenden wir Klassenmethoden. Fabrikmethoden umfassen diejenigen, die je nach Anwendungsfall ein Klassenobjekt zurückgeben.

Durch die Verwendung der @ClassMethod Decoratorin sowie der ClassMethod () -Funktion müssen wir Python explizit benachrichtigen, dass die Methode tatsächlich eine Klassenmethode ist. Wenn Klassenmethoden definiert wurden, ist der Prozess dem der Festlegung einer Standardfunktion ziemlich ähnlich. Um Klassenvariablen innerhalb der Klassenmethoden zu erhalten, verwenden wir ein Schlüsselwort "CLS" als primäres Argument. Infolgedessen haben wir die Kontrolle über die Aktualisierung des Klassenzustands aufgrund der Klassenmethode. Während es möglich ist, eine Variable mit einem anderen Namen für "CLS" zu verwenden, wird dies entmutigt, da Selbst die bevorzugte Norm in Python ist. Die Klassenmethode kann nicht auf Instanzattribute zugreifen. Es wird nur auf Klassenattribute zugreifen.

Statische Methode in Python

Eine unabhängige Aufgabe kann mit einer statischen Methode erledigt werden, bei der es sich um eine generische Nutzungsmethode handelt. Pythons statische Methoden sind nicht gerade vergleichbar mit denen von Java, sondern eher näher an c++. Auch wenn eine statische Methode keinen impliziten anfänglichen Parameter enthält, wie sich selbst und "CLS", kann sie nicht auf die Klasse zugreifen, sondern auch Instanzvariablen.

Jede Methode, die wir einer Klasse hinzufügen, wird direkt in eine Instanzmethode umgewandelt. Ein @StaticMethod Decorator und ansonsten staticMethod () müssen ausdrücklich auf Python hinweisen, dass die Methode tatsächlich eine statische ist. Es ist dem Konstruktion einer regelmäßigen Funktion ziemlich ähnlich, um statische Methoden in einer Klasse festzulegen.

Unterschied

Die Klassenmethode verwendete den Zugriff und veränderte den Zustand der Klasse. Durch die Änderung eines Wertes einer solchen Klassenvariablen, die alle Klassenobjekte betrifft, kann sie den Status der beiden Klasse ändern.

Aufgrund ihres mangelnden Zugriffs auf Objekteigenschaften (Instanzvariablen) sowie Klassenattribute werden nur manchmal statische Methoden verwendet (Klassenvariablen). Daher können sie in einigen Situationen in der Tat nützlich sein, eine solche Typumwandlung.

Als Fabrikmethode werden Klassenmethoden verwendet. Zu den Fabrikmethoden gehören diejenigen, die je nach Anwendungsfall das Klassenobjekt zurückgeben. Vor dem Generieren eines Objekts müssen Sie beispielsweise eine bestimmte Vorverarbeitung mit diesen gelieferten Daten durchführen.

Beispiel Nr. 1

Lassen Sie uns sehen, wie die statische Methode im Code verwendet wird.

Zunächst konstruieren wir eine Klasse namens „Class EMP 1“ für Mitarbeiter 1. Wir werden eine statische Methode anwenden, ein Beispiel 'Y' angeben und die Ergebnisse mit der Verwendung des Druckbefehls drucken. Danach nannten wir jetzt „EMP_1.Sample (), ”, eine statische Funktion, die auch mit dem Objekt„ emp1 = emp_1 () aufgerufen werden kann.”

Beispiel Nr. 2

Verwenden Sie bei der Angabe der Klassenmethode @ClassMethod Decorator oder möglicherweise die Funktion classMethod (). Um eine statische Methode zu erstellen, verwenden Sie einfach staticMethod () Funktion oder @staticMethod Decorator.

Wenn Sie eine Klassenmethode definieren, verwenden Sie "CLS" als allererster Parameter. In Bezug auf die Klasse ist die 'CLS'. Aufgrund des mangelnden Zugriffs auf Instanzvariablen sowie Klassenvariablen können statische Methoden Attribut und Klasse als Parameter nicht akzeptieren.

Wir beginnen damit, eine Klasse namens "Schüler" zu deklarieren und ihr die Variable "School_Name" zu geben. Als nächstes würden wir einen Konstruktor erstellen. Die Instanzvariablen selbst.Name und Selbst.Ich werde deklariert. Anschließend implementieren wir die Klassenmethode, indem wir die Funktion "Change_School ()" erstellen "erstellen. Diese Methode enthält die Parameter „CLS“ und „Name“. Die statische Methode wird daher verwendet. Wir definieren die Methode "find_notebook ()" und übergeben dann das Attribut "Notook_Name". Der Rückgabebefehl wird dann verwendet, um das gewünschte Ergebnis zu erzielen.

Beispiel Nr. 3

Attribute existieren sowohl für Objekte als auch für Klassen. Klassenvariablen sind in Klassenattributen enthalten, während Instanzvariablen Teil von Objektattributen sind. Nur Merkmale auf Klassenebene sind über Klassenmethoden zugänglich. Dies kann in der Tat den Klassenzustand verändern.

In dieser Illustration wurde eine Klasse namens "Worker" mit einer Variablen mit dem Namen "location_name" erstellt. Wir haben eine Funktion namens Init () erstellt, die die Variablen selbst, den Namen und die ID enthält. Darüber hinaus greifen wir auf zwei verschiedene Klassenvariablen und Instanzvariablen zu. Der erste Druckbefehl besteht aus "Arbeiter", "Selbst.Name 'und' Selbst.ID 'als Parameter. In ähnlicher Weise enthält der zweite Druckbefehl "Ort", "Selbst".location_name 'als Argumente. Wenn wir dann nur auf Klassenvariablen zugreifen, haben wir eine Klassenmethode aufgerufen und die Funktion change_location () definiert und definiert. Die Funktion print () wird zweimal nach der Klassenmethode und auch des Parameters „CLS“ angewendet. Die statische Methode wird konstruiert. Innerhalb dieser Methodik ist die Funktion find_toolbox () definiert. Der Befehl "Rückgabe" wird verwendet. Durch Ausführen dieser Aktionen haben wir das Objekt „Anis“ erstellt und die entsprechende Show () -Methode aufgerufen.

Beispiel Nr. 4

Statische und Klassenmethoden sind an dieselbe Klasse gebunden. Daher sollte der Klassenname verwendet werden, um darauf zuzugreifen.

In diesem Beispiel erstellen wir die Klasse „Player“ und definieren die Init () -Methode, in der zwei Variablen Self und Team_NO enthalten sind. Die Klassenmethode und die statische Methode würden konstruiert. Innerhalb der Klassenmethode definieren wir die Funktion "Change_City (), die zwei Argumente enthält. Die Funktion find_accessories () wird innerhalb der statischen Methode definiert. Diese Funktion hat nur ein Argument. Anschließend haben wir unter den Anweisungen die Print () -Funktion zweimal aufgerufen, um sowohl die statischen als auch die Klassenmethoden anzuzeigen. Nachdem wir ein Objekt namens „Hammad“ erstellt haben, haben wir die Klasse und statische Methoden individuell verbunden.

Abschluss

In diesem Leitfaden haben wir sowohl über die Unterrichts- als auch über statische Methoden in Python gesprochen, einschließlich dessen, was sie sind, wie sie definiert sind und wie man sie erstellt. Um zu verstehen, was in den Beispielen geschieht und wie man diese Funktionen während ihrer Codierungsreise nutzen sollte, haben wir auch einige Details aufgenommen, die zwischen diesen beiden Methoden unterschieden werden. In jedem dieser Fälle werden Klassenmethoden sowie statische Methoden in Python verwendet, gegebenenfalls zusammen mit Instanzmethoden.