python装饰器

起因

这个起因相当朴素,就是下午了,办公室闷,不透气,实在没精力,想起来装饰器还没有搞懂,那就学习一下吧。
B站教程:
https://www.bilibili.com/video/BV11s411V7Dt?from=search&seid=2368106394264033096
这是一个博主自己写的汇总博客:
https://blog.csdn.net/happygjcd/article/details/103519479

函数嵌套

参考教程:
https://www.cnblogs.com/Henry121/p/12532676.html

函数对象

在python中涉及到值的传递都是内存传递,
在这里插入图片描述
以上都是为了说明函数的参数可以是另一个函数,因为函数本质上和变量的传递是相同的,都是一个地址。

python装饰器

用简单的例子说明。

import time

def display_time(func):
    def wrapper(*args):
        t1 = time.time()
        result = func(*args)
        t2 = time.time()
        print('total_time:{:.4} s'.format(t2 - t1))
        return result
    return wrapper


@display_time
def prime_nums():
    for i in range(2, 10000):
        if is_prime(i):
            print(i)

@display_time
def count_prime_nums():
    count = 0
    for i in range(2, 10000):
        if is_prime(i):
            count += 1
            # print(i)
    return count

@display_time
def count_prime_nums(maxnum):
    count = 0
    for i in range(2, maxnum):
        if is_prime(i):
            count += 1
            # print(i)
    return count

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

# 无参无返回值
prime_nums()

# 有返回值
count = count_prime_nums()
print(count)

# 有参有返回值
count = count_prime_nums(1000)
print(count)

参考链接来源

感谢B站up主。
https://www.cnblogs.com/Henry121/p/12532676.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值