python重试装饰器示例
利用python 写一些网络服务的时候,当网络状况不好,或者资源占用过多,任务拥塞的情况下,总会抛出一些异常,当前任务就被终止了,可以很好的利用@装饰器,写一个重试的装饰器,这样比较python!
执行结果:
代码如下:
WARNING:root:timed out, Retrying in 3 seconds...
WARNING:root:timed out, Retrying in 6 seconds...
WARNING:root:timed out, Retrying in 12 seconds...
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# tanyewei@gmail.com
# 2014/01/27 10:36
import time
import logging
import socket
from functools import wraps
logging.basicConfig(level=logging.DEBUG)
def retry(MyException, tries=4, delay=3, backoff=2, logger=None):
def deco_retry(f):
@wraps(f)
def f_retry(*args, **kwargs):
mtries, mdelay = tries, delay
while mtries > 1:
try:
return f(*args, **kwargs)
except MyException as ex:
msg = "%s, Retrying in %d seconds..." % (str(ex), mdelay)
if logger:
logger.warning(msg)
else:
print msg
time.sleep(mdelay)
mtries -= 1
mdelay *= backoff
return str(ex)
return f_retry
return deco_retry
@retry(Exception, logger=logging)
def check():
sk = socket.socket()
sk.settimeout(5)
sk.connect(('6.6.6.6', 80))
if __name__ == "__main__":
check()

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



Wie funktionieren Dekorateure und Kontextmanager in Python? In Python sind Dekoratoren und Kontextmanager zwei sehr nützliche Konzepte und Funktionen. Sie alle sind darauf ausgelegt, Code zu vereinfachen, die Lesbarkeit des Codes zu verbessern und die Wiederverwendung von Code zu erleichtern. 1. Dekorator Ein Dekorator ist eine spezielle Funktion in Python, die verwendet wird, um das Verhalten einer Funktion zu ändern. Es ermöglicht uns, die ursprüngliche Funktion zu umschließen oder zu erweitern, ohne sie zu ändern. Dekoratoren werden häufig in vielen Python-Frameworks und -Bibliotheken wie Flask und Dj verwendet

Dies ist unser dritter Artikel, in dem wir Ihnen Schritt für Schritt zeigen, wie Sie einen Python-Timer implementieren. Die ersten beiden Artikel zeigen Ihnen Schritt für Schritt, wie Sie einen Python-Timer implementieren und Kontextmanager verwenden, um Python-Timer zu erweitern, wodurch unsere Timer-Klasse benutzerfreundlich, schön und praktisch wird. Damit geben wir uns aber nicht zufrieden, es gibt noch einen Anwendungsfall, der es noch weiter vereinfachen kann. Angenommen, wir müssen die in einer bestimmten Funktion in unserer Codebasis verbrachte Zeit verfolgen. Mit einem Kontextmanager haben Sie grundsätzlich zwei verschiedene Möglichkeiten: 1. Verwenden Sie Timer jedes Mal, wenn Sie eine Funktion aufrufen: mit Timer("some_name"): do_something() Wenn wir drin sind

Dekoratoren sind spezifische Implementierungen von Python-Kontextmanagern. In diesem Artikel wird die Verwendung anhand eines Beispiels für das Debuggen einer Pytorch-GPU veranschaulicht. Auch wenn es möglicherweise nicht in jeder Situation funktioniert, fand ich sie sehr nützlich. Debuggen von Speicherlecks Es gibt viele Möglichkeiten, Speicherlecks zu debuggen. In diesem Artikel wird eine nützliche Methode zum Identifizieren problematischer Zeilen in Ihrem Code demonstriert. Diese Methode kann dabei helfen, den spezifischen Standort präzise zu finden. Manuelles zeilenweises Debuggen Wenn Sie auf ein Problem stoßen, besteht eine klassische und häufig verwendete Methode darin, den Debugger zur zeilenweisen Überprüfung zu verwenden, wie im folgenden Beispiel: Finden Sie Codeausschnitte zur Berechnung der Gesamtzahl aller Tensoren in Pytorch in die Suchmaschine, wie zum Beispiel: tensor -counter-s

Dekoratoren sind sehr nützliche Werkzeuge in Python. Ein Dekorator ist eine Funktion, die eine andere Funktion als Parameter verwendet und deren Funktionalität erweitert, ohne sie explizit zu ändern. Es ermöglicht uns, das Verhalten einer Funktion oder Klasse zu ändern, ohne deren Quellcode zu berühren. Mit anderen Worten: Ein Dekorateur umhüllt eine Funktion, um ihr Verhalten zu erweitern, anstatt sie dauerhaft zu ändern. Lassen Sie uns ausgehend von diesem Artikel untersuchen, was Dekoratoren sind und wie sie in Python funktionieren. 1.1 Über Funktionen Um zu verstehen, wie Dekoratoren funktionieren, müssen wir einige wichtige Konzepte über Funktionen in Python überprüfen. Beachten Sie immer, dass Funktionen (Funktionen) in Python Bürger erster Klasse sind, daher sollten Sie die folgenden Konzepte im Hinterkopf behalten: ü Funktionen

Python ist eine anfängerfreundliche Sprache. Es verfügt jedoch auch über viele erweiterte Funktionen, die schwer zu beherrschen sind, z. B. Dekorateure. Viele Anfänger haben noch nie verstanden, wie Dekorateure arbeiten. In diesem Artikel stellen wir die Besonderheiten von Dekorateuren vor. In Python ist eine Funktion eine sehr flexible Struktur, die einer Variablen zugewiesen, als Parameter an eine andere Funktion übergeben oder als Ausgabe einer Funktion verwendet werden kann. Ein Dekorator ist im Wesentlichen eine Funktion, die es anderen Funktionen ermöglicht, einige Funktionen ohne Änderungen hinzuzufügen. Dies ist die Bedeutung von „Dekoration“. Diese „Dekoration“ selbst stellt eine Funktion dar. Wenn Sie sie verwenden, um verschiedene Funktionen zu ändern, wird diese Funktion zu diesen Funktionen hinzugefügt.

Beispieldekoratoren in Python können entweder Funktionen oder Klassen sein. In den vorherigen Abschnitten haben wir Funktionsdekoratoren verwendet. Jetzt lernen wir, wie man Klassendekoratoren definiert. Wir werden eine benutzerdefinierte Klasse definieren, die als Dekorator fungiert. Wenn eine Funktion mit einer Klasse dekoriert/geändert wird, wird die Funktion zu einer Instanz dieser Klasse. Finden wir es heraus: Wie oben gezeigt, haben wir einen einfachen Klassendekorator erstellt. Damit eine Klasse zum Dekorator wird, muss sie die Methode __call__() implementieren. Die Methode __call__() funktioniert genauso wie eine Wrapper-Funktion in einem Funktionsdekorator. Nun verwenden wir diese Klasse, um eine Funktion zu dekorieren: Die Ausgabe des Programms ist wie folgt: Klassendekorator mit den Parametern *args und **kwargs. Damit der Klassendekorator Parameter verwenden kann, verwenden Sie

Häufig gestellte Fragen und Lösungen zu Dekoratoren in Python. Was sind Dekoratoren, eine sehr leistungsstarke Funktion in Python, mit der das Verhalten vorhandener Funktionen oder Klassen geändert werden kann, ohne deren Quellcode zu ändern? Ein Dekorator ist eigentlich eine Funktion oder Klasse, die eine Funktion oder Klasse als Parameter akzeptiert und eine neue Funktion oder Klasse zurückgibt. Wie schreibe ich einen einfachen Dekorator? Hier ist ein Beispiel für einen einfachen Dekorator: defdecorator(func):definner_func

Decorator ist eine erweiterte Python-Syntax. Es kann eine Funktion, Methode oder Klasse verarbeitet werden. In Python verfügen wir über mehrere Methoden zur Verarbeitung von Funktionen und Klassen. Im Vergleich zu anderen Methoden verfügen Dekoratoren über eine einfache Syntax und eine hohe Lesbarkeit des Codes. Daher werden Dekoratoren häufig in Python-Projekten verwendet. Dekoratoren werden häufig in Szenarien mit übergreifenden Anforderungen verwendet. Zu den klassischen Beispielen gehören Einfügungsprotokolle, Leistungstests, Transaktionsverarbeitung, Webberechtigungsüberprüfung, Cache usw. Der Vorteil von Dekoratoren besteht darin, dass sie in einer großen Anzahl von Funktionen denselben Code extrahieren können, der nichts mit der Funktion selbst zu tun hat, und ihn weiterhin wiederverwenden können. Das heißt, Funktionen können in völlig unterschiedliche Verhaltensweisen „modifiziert“ werden und Geschäftslogik kann effektiv orthogonal zerlegt werden. Im Allgemeinen Dekoration
