首页 > 其他分享 >async装饰器

async装饰器

时间:2023-08-03 16:24:03浏览次数:27  
标签:wraps return res func time async 装饰 def

1.异步无参装饰器

import time
from functools import wraps

def total_time(func):
  @wraps(func)
  async def wrapper(*args, **kwargs):
    start = time.time()
    res = await func(*args, **kwargs)
    print(f'RUN TIME: {time.time() - start}')
    return res
  return wrapper

2.异步有参数装饰器

import time
from functools import wraps

def set_num(desc: str):
  def outer(func):
    @wraps(func)
    async def wrapper(*args, **kwargs):
      start = time.time()
      res = await func(*args, **kwargs)
      print(f'RUN TIME - {desc}: {time.time() - start}')
      return res
    return wrapper
  return outer

标签:wraps,return,res,func,time,async,装饰,def
From: https://www.cnblogs.com/lxd670/p/17603620.html

相关文章

  • asyncio的subprocess使用
    1.asyncio的subprocessasyncio提供了两个开箱即用的协程函数来创建子进程,这些协程函数都返回一个Process实例1.asyncio.create_subprocess_exec(),用于直接运行命令(如ls、pwd、who、python3、go等)。2.asyncio.create_subprocess_shell(),用于通过shell运行命令。cre......
  • 多任务派发线程处理示例supplyAsync
    packagecom.cytc.test;importjava.util.ArrayList;importjava.util.List;importjava.util.Random;importjava.util.concurrent.CompletableFuture;importjava.util.concurrent.LinkedBlockingQueue;importjava.util.concurrent.ThreadPoolExecutor;importjava......
  • Java设计模式--装饰器模式
    Java设计模式--装饰器模式一、问题背景在项目场景中,有这样一个需求,需要对录入的加班进行规则校验,包括但不限于,对加班的录入时间进行检查,对录入的加班类型进行检查,对加班日期的班次进行对比检查,对潜入系统的时长进行对比检查等等。具体来说,就是对一条加班记录,进行多种规则的检查......
  • 10个简单但很有用的Python装饰器
    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用于在不修改原始代码的情况下添加额外的功能或功能。装饰器的语法使用@符号,将装饰器应用于目标函数或......
  • java中使用异步方式调用接口@Async
    @Async使用:1、首先在启动类上开启注解@EnableAsync2、然后需要异步操作的方法上加上@Async*/publicclassAsyncTest{@Asyncpublicvoidtest()throwsInterruptedException{//做处理Thread.sleep(1000);}/**如果需要返回值的话,通过AsyncResult进行封装*/@AsyncpublicF......
  • Unity 将UnityWebRequest改为async/await异步
    花了一点时间,对UnityWebRequest进行了简单封装,使用起来更方便一些,顺便实现了post接口轮询、重试的功能usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Runtime.CompilerServices;usingSystem.Text;usingSystem.Threading.Tasks;......
  • Python-9-Python迭代器、生成器与装饰器
    9-1迭代器在本章之前的代码,for循环本质上是迭代器的应用。迭代器,可以理解为一个容器,循环的时候,每次从容器中取出一个数据,直到数据取完为止。foriinrange(1,10):print(i,end='')#123456789如何自定义一个迭代器1.以类为例,需要在类中定义两个方法:__iter......
  • 登录认证装饰器,flask配置文件,路由系统
    0登录认证装饰器#0装饰器的本质原理 -#类装饰器:1装饰类的装饰器2类作为装饰器#1装饰器使用位置,顺序#3flask路由下加装饰器,一定要加endpoint -如果不指定endpoint,反向解析的名字都是函数名,不加装饰器没有问题,就是正常函数index,detail-如果加了装饰器---》in......
  • promise和async await的差别
    Promise是ES6引入的一种处理异步操作的机制。它可以表示一个异步操作的最终完成或失败,并在完成或失败后返回结果或错误信息。Async/await是ES8(ECMAScript2017)引入的一种基于Promise的语法糖,用于更简洁地处理异步操作。它可以让异步的代码看起来更像同步的代码,提供了更好......
  • Js 之promise、async 和 await
    一、示例代码<html><head></head><body><scriptsrc="jquery.js"></script><script>constlogin=asyncfunction(){vara=awaitnewPromise((resolve,reject)=>{$.get("&qu......