Python-Dekoratorprinzip und Nutzungsanalyse
Dieser Artikel stellt hauptsächlich das Prinzip und die Verwendung von Python-Dekoratoren vor und analysiert die Konzepte, Prinzipien, Verwendungsmethoden und zugehörigen Betriebsvorkehrungen von Python-Dekoratoren in Form von Beispielen. Freunde in Not können sich auf diesen Artikel beziehen
Beispiele beschreiben die Prinzipien und die Verwendung von Python-Dekoratoren. Teilen Sie es wie folgt mit allen als Referenz:
1. Die Essenz eines Dekorators ist eine Funktion , die hauptsächlich zum Dekorieren anderer Funktionen verwendet wird ist, Zusätzliche Funktionen zu anderen Funktionen hinzufügen
2. Prinzipien von Dekorateuren:
(1) Dekorateure können den Quellcode der dekorierten nicht ändern Funktion
(2) Dekorateure können die Aufrufmethode der dekorierten Funktion nicht ändern
3. Wissensreserve für die Implementierung von Dekoratoren
(1) Funktionen in Python sind „Variablen“
a. Speicherung von Variablen in Python
x='Tomwenxing' y=x
[Erklärung]:
Wenn der Python-Interpreter auf die Anweisung x='Tomwenxing' stößt Es erledigt hauptsächlich zwei Aufgaben:
1. Erstellen Sie einen Platz im Speicher, um die Zeichenfolge „Tomwenxing“ zu speichern
2. Erstellen Sie eine Variable mit dem Namen x im Speicher und verwenden Sie sie, um auf den von der Zeichenfolge „Tomwenxing“ belegten Speicherplatz zu zeigen (kann als Beziehung zwischen Raum und Raumnummer verstanden werden)
und die Anweisung y=x bedeutet, die Referenz der Variablen x auf die Zeichenfolge der Variablen y zuzuweisen, Das heißt, erstellen Sie eine Variable y im Speicher und verweisen Sie auf den Speicherbereich, auf den die Variable x zeigt
b Die Funktion ist in der Speicherung in Python
def test(): pass
[Erklärung]:
In Python ist die Speicherung von Funktionen ähnlich wie bei Variablen. Nehmen Sie die obige Funktion als Beispiel , Python-Erklärung Es macht hauptsächlich zwei Dinge:
1. Öffnen Sie einen Speicherplatz im Speicher, um die Zeichenfolge des Funktionscodes zu speichern (in diesem Beispiel hat der Code nur ein Satz: bestanden)
2. Erstellen Sie einen Variablentest im Speicher, um auf den Speicherplatz zu verweisen, in dem die Funktionscodezeichenfolge gespeichert ist (Entspricht test='function body')
In Python sind Funktionen also Variablen
(2) Funktion höherer Ordnung (eine Funktion höherer Ordnung erfüllt eine der folgenden beiden Bedingungen)
a. Übergeben Sie einen Funktionsnamen als tatsächlichen Parameter an einen anderen Funktion
[Auswirkungen auf Dekorateure]: Erzielen Sie den Effekt „Hinzufügen von Funktionalität zur dekorierten Funktion, ohne ihren Quellcode zu ändern“
import time def bar(): time.sleep(2) print('in the bar') def test(func): start_time=time.time() func() stop_time=time.time() print('函数的运行时间为:',stop_time-start_time) test(bar)
Wird ausgeführt Ergebnisse:
in der Leiste
Die Laufzeit der Funktion beträgt: 2.0021145343780518
b. Der Rückgabewert enthält den Funktionsnamen
[Auswirkungen auf Dekorateure]: Erzielen Sie den Effekt „die Art und Weise, wie die Funktion aufgerufen wird, nicht zu ändern“
import time def bar(): time.sleep(3) print('in the bar') def test2(func): print('新添加的功能') return func bar=test2(bar) bar()
Ausführungsergebnisse:
Neu hinzugefügte Funktionen
in der Leiste
(3) Verschachtelte Funktion: Verwenden Sie def in einem Funktionskörper, um eine neue Funktion (keinen Aufruf) zu deklarieren
def foo(): print('in the foo') def bar(): #声明一个新的函数,而不是调用函数 print('in the bar') bar() foo()
Laufergebnis :
im foo
in der Leiste
4. Dekorator-Syntax: Funktion höherer Ordnung + verschachtelte Funktion => Dekorator (das folgende Beispiel kann debuggt werden mit pycharm Debuggen Sie es mit einem Computer, um die laufende Sequenz des Codes zu sehen)
import time def timer(func): def deco(*args,**kwargs):#使用了不定参数 start_time=time.time() res=func(*args,**kwargs) #运行函数 stop_time=time.time() print('运行时间:',stop_time-start_time) return res # 若无返回值,则返回None return deco @timer #等价于test1=timer(test1)=deco,即test1()=deco() def test1(): time.sleep(3) print('in the test1') @timer #等价于test2=timer(test2)=deco,即test2(name)=deco(name) def test2(name): time.sleep(3) print('in the test2',name) test1() print('-------------分界线------------------------') test2('Tomwenxing')
Laufende Ergebnisse:
im Test1
Laufzeit: 3,0001718997955322
-- ----- ------Grenzlinie-------
im Test2 Tomwenxing
Laufzeit: 3.000171422958374
5. Decorator mit Parametern
# -*- coding:utf-8 -*- user,passwd='Tomwenxing','123' #如装饰器带参数,一般是三层嵌套 def auth(auth_type): #第一层的参数是装饰器的参数 def outer_wrapper(func):#第二层的参数是装饰器要装饰的目标函数 def wrapper(*args,**kwargs):#第三次的参数是目标函数的参数 if auth_type=='local': username = input('Username:').strip() password = input('Password:').strip() if user == username and passwd == password: print('用户Tomwenxing已经成功登录!') res = func(*args, **kwargs) #运行目标函数 return res else: exit('用户名或密码有错误') elif auth_type=='ldap': print('暂不支持这种登录方式!') return wrapper return outer_wrapper def index(): print('欢迎来到index页面') @auth(auth_type='local') #home=wrapper() def home(name): print('%s,欢迎来到home页面' %name) return 'This is home page' @auth(auth_type='ldap') def bbs(): print('欢迎来到bbs页面 ') index() print('----------------------分界线-------------------') print('函数的返回值为:',home('wenxing')) print('----------------------分界线-------------------') bbs()
Laufende Ergebnisse:
Willkommen auf der Indexseite
---------- - ---------Grenzlinie-----
Benutzername:Tomwenxing
Passwort:123
Benutzer Tomwenxing hat sich bereits angemeldet erfolgreich!
wenxing, willkommen auf der Homepage
Der Rückgabewert der Funktion ist: Dies ist die Homepage
------------------------------------- Grenzlinie -------------------
Diese Anmeldemethode wird noch nicht unterstützt!
Verwandte Empfehlungen:
Verwenden Sie Python Decorator, um die Funktionslaufzeit zu berechnen
Python-Iteratordefinition und einfache Nutzungsanalyse
Das obige ist der detaillierte Inhalt vonPython-Dekoratorprinzip und Nutzungsanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

Im VS -Code können Sie das Programm im Terminal in den folgenden Schritten ausführen: Erstellen Sie den Code und öffnen Sie das integrierte Terminal, um sicherzustellen, dass das Codeverzeichnis mit dem Terminal Working -Verzeichnis übereinstimmt. Wählen Sie den Befehl aus, den Befehl ausführen, gemäß der Programmiersprache (z. B. Pythons Python your_file_name.py), um zu überprüfen, ob er erfolgreich ausgeführt wird, und Fehler auflösen. Verwenden Sie den Debugger, um die Debugging -Effizienz zu verbessern.

Python zeichnet sich in Automatisierung, Skript und Aufgabenverwaltung aus. 1) Automatisierung: Die Sicherungssicherung wird durch Standardbibliotheken wie OS und Shutil realisiert. 2) Skriptschreiben: Verwenden Sie die PSUTIL -Bibliothek, um die Systemressourcen zu überwachen. 3) Aufgabenverwaltung: Verwenden Sie die Zeitplanbibliothek, um Aufgaben zu planen. Die Benutzerfreundlichkeit von Python und die Unterstützung der reichhaltigen Bibliothek machen es zum bevorzugten Werkzeug in diesen Bereichen.

VS -Code -Erweiterungen stellen böswillige Risiken dar, wie das Verstecken von böswilligem Code, das Ausbeutetieren von Schwachstellen und das Masturbieren als legitime Erweiterungen. Zu den Methoden zur Identifizierung böswilliger Erweiterungen gehören: Überprüfung von Verlegern, Lesen von Kommentaren, Überprüfung von Code und Installation mit Vorsicht. Zu den Sicherheitsmaßnahmen gehören auch: Sicherheitsbewusstsein, gute Gewohnheiten, regelmäßige Updates und Antivirensoftware.

Die Installation von CentOS-Installationen erfordert die folgenden Schritte: Installieren von Abhängigkeiten wie Entwicklungstools, PCRE-Devel und OpenSSL-Devel. Laden Sie das Nginx -Quellcode -Paket herunter, entpacken Sie es, kompilieren Sie es und installieren Sie es und geben Sie den Installationspfad als/usr/local/nginx an. Erstellen Sie NGINX -Benutzer und Benutzergruppen und setzen Sie Berechtigungen. Ändern Sie die Konfigurationsdatei nginx.conf und konfigurieren Sie den Hörport und den Domänennamen/die IP -Adresse. Starten Sie den Nginx -Dienst. Häufige Fehler müssen beachtet werden, z. B. Abhängigkeitsprobleme, Portkonflikte und Konfigurationsdateifehler. Die Leistungsoptimierung muss entsprechend der spezifischen Situation angepasst werden, z. B. das Einschalten des Cache und die Anpassung der Anzahl der Arbeitsprozesse.

VS Code ist der vollständige Name Visual Studio Code, der eine kostenlose und open-Source-plattformübergreifende Code-Editor und Entwicklungsumgebung von Microsoft ist. Es unterstützt eine breite Palette von Programmiersprachen und bietet Syntax -Hervorhebung, automatische Codebettel, Code -Snippets und intelligente Eingabeaufforderungen zur Verbesserung der Entwicklungseffizienz. Durch ein reiches Erweiterungs -Ökosystem können Benutzer bestimmte Bedürfnisse und Sprachen wie Debugger, Code -Formatierungs -Tools und Git -Integrationen erweitern. VS -Code enthält auch einen intuitiven Debugger, mit dem Fehler in Ihrem Code schnell gefunden und behoben werden können.
