Heim >Backend-Entwicklung >Python-Tutorial >Was sind die häufigsten Verwendungszwecke von Python-Dekoratoren?

Was sind die häufigsten Verwendungszwecke von Python-Dekoratoren?

PHPz
PHPznach vorne
2023-09-16 12:29:051420Durchsuche

Was sind die häufigsten Verwendungszwecke von Python-Dekoratoren?

In diesem Artikel lernen wir die allgemeine Verwendung von Python-Dekoratoren kennen

Was sind Python-Dekoratoren?

Ein Python-Dekorator ist ein Codestück, das Ergänzungen oder Aktualisierungen bestehender Funktionen ermöglicht, ohne dass die zugrunde liegende Funktionsdefinition geändert werden muss. Wenn ein Programm ausgeführt wird, versucht es, einen anderen Teil von sich selbst zu bearbeiten, was als Metaprogrammierung bezeichnet wird.

Decorator ist ein Funktionstyp, der eine Funktion annimmt und eine andere Funktion zurückgibt oder eine Klasse annimmt und eine andere Klasse zurückgibt. Es kann beliebig aufrufbar sein (Funktion, Klasse, Methode usw.) und kann alles zurückgeben; es kann auch eine Methode annehmen.

Python-Dekoratoren sind einfach zu verwenden.

Der Dekorateur akzeptiert ein aufrufbares Objekt, das die spezielle Methode __call()__ implementiert, ein sogenanntes aufrufbares Objekt, das einige Funktionen hinzufügt und ein aufrufbares Objekt zurückgibt.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

@somedecorator
def exmple_decorators():
   print("Hello tutorialspoint python decorators")

Das Schreiben von Dekorateuren hingegen erfordert ganz andere Fähigkeiten. Dies ist keine einfache Angelegenheit. Sie müssen Folgendes vollständig verstehen:

    Schließen
  • Verwenden Sie Funktionen als erstklassige Parameter,
  • Variable Parameter
  • Parameter entpacken und
  • Sogar einige Informationen darüber, wie Python seinen Quellcode lädt.
Es dauert lange, das alles zu beherrschen und zu perfektionieren. Und Sie haben bereits eine lange Liste mit Dingen, die Sie lernen müssen.

Ist das Ihre Zeit wert?

Die Antwort ist offensichtlich

Ja. Was sind die Hauptvorteile von Schreibdekorateuren? Ermöglichen sie Ihnen, sich mühelos in Ihrer täglichen Entwicklung hervorzuheben?

Mal sehen!

Analyse, Protokollierung und Erkennung

Wir müssen oft gezielt messen, was passiert, und Metriken sammeln, die verschiedene Vorgänge quantifizieren, insbesondere bei großen Anwendungen. Dekorateure können diese Anforderung auf äußerst lesbare und einfache Weise lösen, indem sie diese bemerkenswerten Ereignisse in ihre eigenen Funktionen oder Methoden kapseln.

Validierung und Laufzeitprüfungen

Pythons Typsystem ist stark typisiert, aber dynamisch. Obwohl es viele Vorteile hat, bedeutet es auch, dass einige Probleme möglicherweise zur Kompilierungszeit von statisch typisierten Sprachen wie Java erkannt werden.

Darüber hinaus möchten Sie möglicherweise komplexere benutzerdefinierte Prüfungen für die Dateneingabe und -ausgabe im System implementieren. Dekoratoren helfen Ihnen dabei, all dies zu verwalten und es auf mehrere Funktionen gleichzeitig anzuwenden.

Erstellen Sie einen Rahmen

Sobald Sie lernen, Dekoratoren zu schreiben, werden Sie von ihrer prägnanten Syntax profitieren, die es Ihnen ermöglicht, der Sprache problemlos Semantik hinzuzufügen. Dies kommt der Erweiterung der Python-Syntax am nächsten.

Viele bekannte Open-Source-Frameworks verwenden es. Das Webanwendungs-Framework

Flask verwendet dies, um URLs an Funktionen weiterzuleiten, die HTTP-Anfragen verarbeiten.

Nicht wiederverwendbaren Code wiederverwenden

Mit eleganter Funktionssyntax, Unterstützung für funktionale Programmierung und einem vollständigen Objektsystem bietet Python einige sehr leistungsstarke Tools zum Kapseln von Code in eine leicht wiederverwendbare Form. Allerdings können diese Tools allein bestimmte Code-Wiederverwendungsmuster nicht erfassen.

Erwägen Sie die Verwendung der Flakey-API. Sie senden eine Anfrage über HTTP an ein Objekt, das JSON versteht, und in 99,9 % der Fälle funktioniert es. Allerdings führt ein kleiner Prozentsatz aller Anfragen dazu, dass der Server einen internen Fehler zurückgibt, sodass Sie die Anfrage erneut versuchen müssen. In diesem Fall müssen Sie eine Wiederholungslogik hinzufügen.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

# Creating a decorator function
def decoratorFunction(demofunction):
	def innerFunc():
		print("Yup...It is a decorated function")
		demofunction()
	return innerFunc()

# Creating a regular ordinary function
def normalFunction():
	print("Yup...It is a normal ordinary function")

decoratedResult = decoratorFunction(normalFunction)
decoratedResult

Ausgabe

Bei der Ausführung generiert das obige Programm die folgende Ausgabe:

Yup...It is a decorated function
Yup...It is a normal ordinary function

decoratorFunction() ist ein Decorator aus dem vorherigen Beispiel. Einfach ausgedrückt ist ein Dekorator ein Wrapper, der ein Objekt umhüllt (ohne es zu ändern) und dem ursprünglichen Objekt neue Funktionalität hinzufügt. Da dies eine häufig verwendete Technik ist, bietet Python eine Syntaxfunktion (einen sogenannten Decorator), die die Verwendung erleichtert. Betrachten Sie das Folgende als Beispiel: −

Folgefunktion:

@decorated_func
def ordinary_function():
   print("This is ordinary function")

ist gleich

def ordinary_function():
   print("This is ordinary function")
decorated = decorated_func(ordinary_func)

Verbessern Sie Ihre Karriere

Dekorateure zu schreiben ist zunächst schwierig. Es ist auch kein Hexenwerk, aber es erfordert viel Aufwand, Details zu lernen und zu verstehen, mit denen sich viele Entwickler nie beschäftigen. Dies wirkt sich zu Ihrem Vorteil aus. Wenn Sie die Person im Team werden, die lernt, Dekoratoren richtig zu schreiben und Dekoratoren schreibt, die Fragen aus der realen Welt beantworten, werden andere Entwickler Ihre Dekoratoren verwenden. Sobald die harte Arbeit, Dekorateure zu schreiben, vorbei ist, ist ihre Verwendung sehr einfach. Dies kann die positiven Auswirkungen des von Ihnen entwickelten Codes erheblich steigern. Es könnte dich sogar zum Meister machen.

Fazit

Dekoratoren sind eine unglaubliche Funktion, die für verschiedene Zwecke verwendet werden kann. Es ist nicht nur „eine Funktion oder Klasse, die eine Funktion oder Klasse annimmt und eine Funktion oder Klasse zurückgibt“.

Ganz gleich, mit welcher Methode Sie das Erstellen von Dekoratoren lernen, Sie werden wahrscheinlich begeistert sein, was Sie mit ihnen erreichen können und wie es (kein Scherz) die Art und Weise, wie Sie Python-Code schreiben, für immer verändern wird!

Das obige ist der detaillierte Inhalt vonWas sind die häufigsten Verwendungszwecke von Python-Dekoratoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen