2019-08-05day11总结

生成式

生成式就是生成器的简写

1)语法一

(表达式 for 变量 in 序列)

说明:表达式 - 任何有结果的语句,具体的数据,赋值后的变量,非赋值的运算表达式等...
展开生成式
def 函数名():
  for 变量 in 序列:
    yield 表达式

1.用生成式创建生成器

2.列表生成式
list1 = list(x for x in range(5))
list2 = [x for x in range(5)]

3.字典生成式
dict1 = dict((x, x*2) for x in range(10))

2)语法二:

生成器 = (表达式 for 变量 in 序列 if 条件语句)
展开
def 函数名():
  for 变量 in 序列:
     if 条件语句:
       yield
生成器 = 函数名()

补充:python中的三目运算符

C、java、js等中的三目运算符:* 变量 = 条件语句?表达式1:表达式2*
Python中的三目运算符变量 = 表达式1 if 条件语句 else 表达式2

三目运算符的功能:判断条件语句是否为True,如果是,结果是表达式1,否则结果是表达式2

高阶函数

python中声明函数就是声明类型是function的变量,函数名就是变量名
普通变量能做的事情,函数都可以做:
1)用一个变量给另一个变量赋值
2)修改变量的值
3)变量作为序列的元素
4)作为函数的参数
5)变量作为函数的返回值

1.实参高阶函数

参数是函数的函数就是实参高阶函数
python中内置的sorted、max、min等函数,以及列表的sort方法都是实参高阶函数
这些函数中都有一个参数key,要求传参的时候传一个函数,这个函数需要一个参数和一个返回值,参数代表序列中的元素,返回值是比较对象

2.返回值高阶函数

函数的返回值是一个函数,这样的函数就是返回值高阶函数

情况1:真正的返回值高阶函数
def func1():
  def func2():
    print('函数2')
  return func2

情况2:假的返回值高阶函数
def func3():
  print('函数3')

def func4():
  return func3

闭包

什么是闭包
闭包就是一个函数,这个函数需要满足以下两个条件:
1)函数的返回值是声明在这个函数中的函数(内函数)
2)这个内函数必须使用外函数中的临时变量(外函数中的局部变量)

闭包的作用:保存临时变量的值(函数调用结束后,函数中的数据不销毁)

装饰器

装饰器是python的三大神器之一

什么是装饰器

装饰器本质还是一个函数
装饰器的作用:在不修改函数本身的前提下给函数添加功能

语法:

def 函数名1(参数1)
  def 函数名2(*args, *kwargs):
    ‘实现为原函数添加功能的代码’
    (保证出现:参数1(
args, **kwargs))
  return 函数2

糖语法

@函数名1
声明需要添加功能的函数

回调函数

什么是回调函数:函数的调用是再其他函数的内部满足条件的时候自动调用的函数

def login(in_call_back, exit_call_back): '这儿的in_call_back、exit_call_back就是回调函数'
  in_call_back()
  exit_call_back()

login(fun1, fun2) 'fun1、func2是之前声明的回调时需执行的函数'

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容