python修饰器

python装饰器

前言

此篇博文没有任何套路,就是简单记录一下自己学习装饰器的笔记。

装饰器

首先我们定义一个装饰器

import time
# 定义装饰器
def display_time(func):
    def wrapper(): # wrapper表示的意思是,要运行func这个函数,要运行那些内容
        t1 = time.time()
        func() #运行一下我要走的那个函数
        t2 = time.time()
        print(t2-t1)
    return wrapper #

以上就是一个写好的装饰器。现在我们就将这个装饰器用到一下的prime_nums函数上面。

def is_prime(num):
    if num<2:
        return False
    elif num ==2:
        return True
    else:
        for i in range(2,num):
            if num % i == 0:
                return False
        return True
@display_time
def prime_nums():
    for i in range(2,10000):
        if is_prime(i):
            print(i)

然后我们运行我们的主函数prime_nums()

prime_nums()

重点来了:当我运行prime_nums()函数的时候,它会先直接跳到装饰器display_time(func)里面,然后运行wrapper()里面的内容:先运行t1,然后运行我要运行的函数(prime_nums):这个func才是prime_nums()函数;再运行t2


通俗点讲,装饰器也就是一个函数。如果我要运行的函数带参数,应该怎么办那?那就需要修改装饰器:

def wrapper(*args,**kwargs):
    ...
    result = func(*args,**kwargs)
    ...

参考链接

https://mp.weixin.qq.com/s/_FTxhHYG0CZnw3WUwhwrXg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾继康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值