函数作为返回值/匿名函数/装饰器

来源:互联网 发布:控制手机的软件 编辑:程序博客网 时间:2024/05/20 09:08

1.函数作为返回值

一个函数可以返回一个计算结果,也可以返回一个函数。

返回一个函数时,牢记该函数并未执行,返回函数中不要引用任何可能会变化的变量。


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

例子

list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))

3.装饰器,就是在一个函数运行时想做一些额外的事情,但不想修改函数内部本身。就用到了装饰器,声明后在调用方法前面加上@要调用的装饰器

例子

import functools
def log(text=''):
def decorator(func):
@functools.wraps(func)
def wrapper(*args,**kw):
print('%s %s():'%(text,func.__name__))
return func(*args,**kw)
return wrapper
return decorator


@log('start all')
def now():
print('2015-3-25')




@log()
def now2():
print('2015-3-25')


f = now
f()
now2()

结果

start all now():
2015-3-25
 now2():
2015-3-25

0 0
原创粉丝点击