吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1161|回复: 8
收起左侧

[求助] 关于装饰器中计时器返回值的问题 求解

[复制链接]
syhaiip 发表于 2020-11-16 13:05

小弟学习PYTHON不久 因为教程不算详细 有一个比较初级的问题 希望能得到专业人士的解答谢谢


import time
def timer(func):   
    def wrapper():  
        start=time.time()
        func()
        end=time.time()
        print(end-start)
        return end-start
    return wrapper

@timer
def conppe():
    new=[]
    for x in range(10000):
        new.append(x)

print('向列表中添加X用时',conppe())

求问 上述代码中 为何conppe()的返回值 是wrapper()的返回值


Snipaste_2020-11-16_12-26-14.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yiwozhutou 发表于 2020-11-16 13:40
哥哥 你到哔哩哔哩上面找那个麦叔编程 他今天刚说了一个装饰器的作用 你去看看 希望可以帮助到你 麦叔编程 我看不懂 你跟他学学那个
 楼主| syhaiip 发表于 2020-11-16 13:44
yiwozhutou 发表于 2020-11-16 13:40
哥哥 你到哔哩哔哩上面找那个麦叔编程 他今天刚说了一个装饰器的作用 你去看看 希望可以帮助到你 麦叔编程  ...

谢谢 我这就去看看~
xian54966 发表于 2020-11-16 14:15
装饰器的作用是计算加conppe()函数的执行时间,给被装饰函数用的。没发现有社么问题啊,您说下您以为的是什么结果?
 楼主| syhaiip 发表于 2020-11-16 14:21
xian54966 发表于 2020-11-16 14:15
装饰器的作用是计算加conppe()函数的执行时间,给被装饰函数用的。没发现有社么问题啊,您说下您以为的是什 ...

谢谢您的回复
因为我看到最终是通过print(conppe())也就是被装饰函数输出的用时结果,所以有点蒙圈了,用时结果不是装饰器中wrapper()函数的返回值吗?不太明白装饰器的返回值为什么变成了被装饰器的 返回值
 楼主| syhaiip 发表于 2020-11-16 14:22
xian54966 发表于 2020-11-16 14:15
装饰器的作用是计算加conppe()函数的执行时间,给被装饰函数用的。没发现有社么问题啊,您说下您以为的是什 ...

虽然知道这个整个过程是没有问题的 可能是传参上自己有点卡脑子了
阳光肥肥 发表于 2020-11-16 14:39
        result = func()
        end=time.time()
        print(end-start)
        return result

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
syhaiip + 1 + 1 热心回复!

查看全部评分

 楼主| syhaiip 发表于 2020-11-16 15:18
阳光肥肥 发表于 2020-11-16 14:39
result = func()
        end=time.time()
        print(end-start)

言简意赅 我看明白了 十分感谢
xian54966 发表于 2020-11-18 09:27
syhaiip 发表于 2020-11-16 14:21
谢谢您的回复
因为我看到最终是通过print(conppe())也就是被装饰函数输出的用时结果,所以有点蒙圈了, ...

conppe()没有返回值,print的目的是执行conppe(),conppe()执行同时装饰器执行,但只有装饰器函数有返回值被print出来

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
syhaiip + 1 + 1 谢谢您的解答

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-16 11:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表