python 16 装饰器

# python装饰器
# /usr/sbin/py/python
# -*-coding:utf8-*-

# 装饰器:本质是为目标函数添加新功能,但不影响目标函数本身及其调用

# 装饰器组成: 高阶函数 + 函数嵌套 +闭包
# 高阶函数: 函数接收参数为函数名,函数返回值是一个函数名 满足任意一个条件即称为高阶函数
# 函数嵌套:在函数中又定义了一个函数

# 装饰器架子
import time


def decrator(func):
    def wrapper(*args, **kwargs):  # 参数通配符
        print("wrapper method")
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print("运行时间是%s" % (end_time - start_time))
        return result

    return wrapper


def test():
    time.sleep(3)
    print("execute test method")


test = decrator(test)  # 这个赋值操作显然不能满足

test()


# 语法糖 @+函数名 =》 test = decrator(test)

@decrator
def testNew(a, b):
    time.sleep(2)
    print("execute testNew method")
    return a + b


print(testNew(3, 6))

# 解压序列
l = [1, 2, 3, 4, 5, 6, 7]  # 需求取出序列中的头和尾
a, *_, d = l  # *号后面的_没有实际意义,可以是任意符号
print(a)
# python 中交换值的便捷写法
a = 1
b = 2
a, b = b, a
print(a, b)



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值