博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中高阶函数与装饰器(3)
阅读量:7093 次
发布时间:2019-06-28

本文共 1293 字,大约阅读时间需要 4 分钟。

>>> f = lambda x: x * x

>>> f
<function <lambda> at 0x101c6ef28> >>> f(5) 25

def f(x):

    return x * x

关键字lambda表示匿名函数,冒号前面的x表示函数参数。

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

 

import time def foo():      print("foo...")  #遵守开放封闭原则对原有函数不能直接修改  def show_time(func):      start = time.time()      func()      end = time.time()      print('spend time %s' % (end-start)) 用其他函数直接调用会使函数名更换 def logger(flag =''):     def show_time(f):         def inner(*args):             start = time.time()             f(*args)             end = time.time()             print('speed %s'%(end-start))             if flag == 'true':                 print('日志记录')         return inner     return show_time #添加装饰器函数 @logger('true')#foo = show_time(foo) def foo():     print("foo...")     time.sleep(2) @logger()#bar =show_time(bar) def bar():     print('foo,,,')     time.sleep(2) #@show_time#foo = show_time(foo) def add(*args):     sum=0     for i in args:         sum+=i     print(sum)     time.sleep(1) add(1,2,4,4) 此时函数的_name_属性已经改变 import functools def log(text): def decorator(func): @functools.wraps(func)#此语句将返回的wrapper函数名的_name_属性改为func def wrapper(*args, **kw): print('%s %s():' % (text, func.__name__)) return func(*args, **kw) return wrapper return decorator

转载于:https://www.cnblogs.com/MY0213/p/7766794.html

你可能感兴趣的文章
ZJOI2007报表统计·BZOJ1058
查看>>
页面加载时序问题----BUG分析
查看>>
[算法题] 汉诺塔问题
查看>>
几何,求两整数点确定的线段上的整数点的个数
查看>>
【算法导论】学习笔记——第10章 基本数据结构
查看>>
BNUOJ52317 As Easy As Possible(树上倍增)
查看>>
STL源码阅读(一)
查看>>
c-28
查看>>
华为交换机重置密码案例
查看>>
17素材下载地址
查看>>
Jquery EasyUI1.3.1 JS加载出错
查看>>
LA 4794 Sharing Chocolate (搜索)
查看>>
Yahoo团队网站性能优化的35条黄金守则
查看>>
secureCrt Linux 文件传输
查看>>
JaveWeb 公司项目(1)----- 使Div覆盖另一个Div完成切换效果
查看>>
hdu6078[优化递推过程] 2017多校4
查看>>
zabbix 配置报警方式
查看>>
Eclipse将android项目打包jar文件
查看>>
Spring Security实现RBAC权限管理
查看>>
Struts2返回json
查看>>