一、闭包
在函数里面再定义函数,返回值为函数名
def func():
a = 10
def inner_func(age):
print 'age:', age
return inner_func
bb = func()
print(bb(26))
bb.__closure__不为None表示为闭包
二、匿名函数
lambda表达式
三元表达式: result = true if true else false
map(function, list)
map与lambda表达式混合用
reduce(function,*sequence),连续计算,连续调用function,function内容自定义
上图中r为36
filter(function,*sequence)
三、装饰器
语法糖@
def decorator(func):
def wrapper(*args, **kwargs):
print("this is a inner function")
func(*args, **kwargs)
return wrapper
@decorator
def f1(func_name):
print("this is a function named " + func_name)
@decorator
def f2(func_name, func_name2):
print("\n")
print("this is a function named " + func_name)
print("this is a function named " + func_name2)
f1('adward_z')
f2('adward','zx')
设置断点 a = 1
四、列表推导式
a = [i * i for i in list]
a = [i * i for i in list if i >= 5] # 有条件地筛选
a = [key for key,value i in dict.items()] # 字典
squared = [x*x for x in range(4)]