python 装饰器

 前言

装饰器的学习,需要了解以下3个方面的知识

1.函数名即‘变量名’

2.不能更改被装饰函数的源代码以及调用方式

3.高阶函数和嵌套函数的定义

 

需求:写一个测试函数执行时间的装饰器

import time

def time_test(func):         #高阶函数里面接受另一函数,

  def wrapper(*args,**kwargs):    #嵌套函数在函数里面再定义一个函数

    start_time = time.time()

    func(*args,**kwargs)

    end_time = time.time()

  return wrapper                 #外部函数的返回值是内部函数名

 

@time_test                     #语法糖  f = time_test(f) #返回值 wrapper  ----->  f() =wrapper()

def f():

  time.sleep(2)

  print('in the f.')

 

@time_test

def f2(name):    #我在装饰器里的内部函数wrapper,参数用的是*args  **kwargs

  time.sleep(2)

  print('in th {}'.format(name))

 

调用

f()

f2('sex')

ok,了解这些基本的功能都可以实现了!

 

转载于:https://www.cnblogs.com/linux-error/p/9353497.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值