python-带参数的装饰器
  TEZNKK3IfmPf 2024年03月29日 71 0

解决装饰器的参数问题

期望它可以接收任意参数

import time


# 装饰器函数
def cont_time(func):
    """统计时间的装饰器"""
    def inner(*args, **kwargs):
        start_time = time.time()
        print('计时开始。。。')
        res = func(*args, **kwargs)
        end_time = time.time()
        print('计时结束,总共耗时{:.2f}秒'.format(end_time - start_time))
        return res
    return inner


# 功能函数
@cont_time  # 相当于 do_work = cont_time(do_word)
def do_work(name, gender="男"):
    """有耗时的函数"""
    print('do_work开始')
    time.sleep(1)
    print(name, gender)
    print('do_work结束')
    return 'work is done'  # 返回值需要传递


res = do_work("张三", 22)
print(res)

结果

C:\Users\python_hui\Anaconda3\python.exe G:/test/a/1.py
计时开始。。。
do_work开始
张三 22
do_work结束
计时结束,总共耗时1.00秒
work is done

Process finished with exit code 0

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年03月29日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   30   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   24   0   0 python
  TEZNKK3IfmPf   2024年05月31日   22   0   0 python
TEZNKK3IfmPf