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()

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









이것은 Python 타이머를 구현하는 방법을 단계별로 가르치는 세 번째 기사입니다. 처음 두 기사: Python 타이머를 구현하는 방법을 단계별로 설명하고 컨텍스트 관리자를 사용하여 Python 타이머를 확장하여 Timer 클래스를 사용하기 편리하고 아름답고 실용적으로 만듭니다. 그러나 우리는 이것에 만족하지 않습니다. 이를 더욱 단순화할 수 있는 사용 사례가 여전히 있습니다. 코드 베이스에서 특정 함수에 소요된 시간을 추적해야 한다고 가정해 보겠습니다. 컨텍스트 관리자에는 기본적으로 두 가지 옵션이 있습니다. 1. 함수를 호출할 때마다 Timer를 사용합니다. with Timer("some_name"): do_something()

데코레이터와 컨텍스트 관리자는 Python에서 어떻게 작동합니까? Python에서 데코레이터와 컨텍스트 관리자는 두 가지 매우 유용한 개념이자 기능입니다. 이들은 모두 코드를 단순화하고, 코드 가독성을 높이며, 코드 재사용을 용이하게 하도록 설계되었습니다. 1. 데코레이터 데코레이터는 함수의 동작을 수정하는 데 사용되는 Python의 특수 함수입니다. 이를 통해 원래 함수를 수정하지 않고도 래핑하거나 확장할 수 있습니다. 데코레이터는 Flask, Dj와 같은 많은 Python 프레임워크 및 라이브러리에서 널리 사용됩니다.

데코레이터는 Python 컨텍스트 관리자의 특정 구현입니다. 이 기사에서는 Pytorch GPU 디버깅의 예를 통해 이를 사용하는 방법을 설명합니다. 모든 상황에서 작동하지 않을 수도 있지만 매우 유용하다는 것을 알았습니다. 메모리 누수 문제 디버깅 메모리 누수를 디버깅하는 방법에는 여러 가지가 있습니다. 이 문서에서는 코드에서 문제가 있는 줄을 식별하는 유용한 방법을 보여줍니다. 이 방법을 사용하면 간결하게 특정 위치를 찾는 데 도움이 될 수 있습니다. 한 줄씩 수동 디버깅 문제가 발생하는 경우 일반적으로 사용되는 고전적인 방법은 디버거를 사용하여 다음 예와 같이 한 줄씩 검사하는 것입니다. pytorch에서 모든 텐서의 총 수를 계산하는 방법에 대한 코드 조각 찾기 검색 엔진(예: tensor -counter-s)

Python은 초보자에게 친숙한 언어입니다. 그러나 데코레이터와 같이 마스터하기 어려운 고급 기능도 많이 있습니다. 많은 초보자들은 데코레이터와 그 작동 방식을 전혀 이해하지 못했습니다. 이 기사에서는 데코레이터의 모든 것을 소개합니다. Python에서 함수는 변수에 할당되거나, 다른 함수에 매개변수로 전달되거나, 함수의 출력으로 사용될 수 있는 매우 유연한 구조입니다. 데코레이터는 본질적으로 다른 함수가 수정 없이 일부 기능을 추가할 수 있도록 하는 함수입니다. 이것이 "장식"의 의미입니다. 이 "장식" 자체가 기능을 나타내는 것입니다. 다른 기능을 수정하는 데 사용되는 경우 해당 기능에 이 기능을 추가하는 것입니다.

데코레이터는 Python에서 매우 유용한 도구입니다. 데코레이터는 다른 함수를 매개변수로 사용하고 명시적으로 수정하지 않고 해당 기능을 확장하는 함수입니다. 이를 통해 소스 코드를 건드리지 않고도 함수나 클래스의 동작을 수정할 수 있습니다. 즉, 데코레이터는 함수를 영구적으로 수정하는 대신 동작을 확장하기 위해 함수를 래핑합니다. 이 글을 시작으로 데코레이터가 무엇인지, 파이썬에서 어떻게 작동하는지 알아보겠습니다. 1.1 함수 정보 데코레이터의 작동 방식을 이해하려면 Python의 함수에 대한 몇 가지 중요한 개념을 검토해야 합니다. Python에서 함수(함수)는 일급 시민이므로 다음 개념을 염두에 두어야 합니다. ü 함수

Python의 데코레이터에 대해 자주 묻는 질문 및 솔루션 데코레이터는 소스 코드를 수정하지 않고 기존 함수나 클래스의 동작을 수정하는 데 사용할 수 있는 Python의 매우 강력한 기능입니다. 데코레이터는 실제로 함수나 클래스를 매개변수로 받아들이고 새 함수나 클래스를 반환하는 함수나 클래스입니다. 간단한 데코레이터를 작성하는 방법은 무엇입니까? 다음은 간단한 데코레이터의 예입니다.

Python의 데코레이터 예는 함수 또는 클래스일 수 있습니다. 이전 섹션에서는 함수 데코레이터를 사용했습니다. 이제 클래스 데코레이터를 정의하는 방법을 알아 보겠습니다. 데코레이터 역할을 하는 사용자 정의 클래스를 정의하겠습니다. 함수가 클래스로 장식/수정되면 함수는 해당 클래스의 인스턴스가 됩니다. 알아보자: 위에 표시된 대로 간단한 클래스 데코레이터를 만들었습니다. 모든 클래스가 데코레이터가 되려면 __call__() 메서드를 구현해야 합니다. __call__() 메서드는 함수 데코레이터의 래퍼 함수와 동일하게 작동합니다. 이제 이 클래스를 사용하여 함수를 장식해 보겠습니다. 프로그램 실행 결과는 다음과 같습니다. *args 및 **kwargs 매개변수가 있는 클래스 장식자 클래스 장식자가 매개변수를 사용하도록 하려면 다음을 사용하세요.

데코레이터는 고급 Python 구문입니다. 함수, 메소드 또는 클래스를 처리할 수 있습니다. Python에는 함수와 클래스를 처리하는 여러 가지 방법이 있습니다. 다른 방법에 비해 데코레이터는 구문이 간단하고 코드 가독성이 높습니다. 따라서 데코레이터는 Python 프로젝트에서 널리 사용됩니다. 데코레이터는 교차 요구 사항이 있는 시나리오에서 자주 사용됩니다. 일반적인 예로는 삽입 로그, 성능 테스트, 트랜잭션 처리, 웹 권한 확인, 캐시 등이 있습니다. 데코레이터의 장점은 함수 자체와 관련이 없는 수많은 함수에서 동일한 코드를 추출하여 계속해서 재사용할 수 있다는 것입니다. 즉, 기능은 완전히 다른 동작으로 "수정"될 수 있으며 비즈니스 로직은 효과적으로 직교적으로 분해될 수 있습니다. 일반적으로 말하면 장식
