5.10 函数中高级
5.10.1 函数可以当做返回值
def func(): print(123) def bar(): return func?v = bar()?v()
5.10.2 闭包
def func(name): def innner(): print(name) return inner?v1 = func(‘liujia‘)v1()v2 = func(‘eric‘)v2()
总结:
- 函数执行的流程分析(函数式谁创建的)
- 闭包概念:为函数创建一块区域并为其维护自己数据,以后执行时候方便调用
5.10.3 高阶函数
- 将函数当做参数传递
- 把函数当做返回值
注意:对函数进行赋值
def func(): print(123) def bar(a): return a?v1 = bar(func)v1()
5.11 装饰器
#装饰器的编写def func(arg): def inner(*args,**kwargs) #需要添加的操作 ret = arg(*args,**kwargs) #需要添加的操作 return ret return inner?@funcdef index(): print(123) #执行函数,自动触发装饰器v = index()print(v)?
#装饰器编写格式def 外层函数(参数): def 内层函数(*args,*kwargs) return 参数(*args,**kwargs) return 内层函数?@外层函数def index(): pass?index()
5.12 推导式
- 列表的推导式
- 基本格式
#目的:方便生成一个列表?v1 = [i for i in range(10)]v2 = [ i+100 for i in range(10)]v3 = [99 if i>5 else 66 for i in range(10)]v4 = [lambda : 100 for i in range(10)]v5 = [lambda : 1 for i in range(10)]??v8 = [lambda x:x*i for i in range(10)] # 新浪微博面试题# 1.请问 v8 是什么?# 2.请问 v8[0](2) 的结果是什么??def num(): return [lambda x:i*x for i in range(4)]# num() -> [函数,函数,函数,函数]print([ m(2) for m in num() ]) # [6,6,6,6]
- 集合推导式
v1 = { i for i in ‘alex‘ }
- 字典推导式
v1 = {‘k‘+str‘i‘:i for i in range(10)}
原文地址:https://www.cnblogs.com/doraemon548542/p/11194003.html
时间: 2024-10-09 19:18:23