生成式
生成式就是生成器的简写
1)语法一
(表达式 for 变量 in 序列)
a、说明:表达式 - 任何有结果的语句,数据,赋值后的变量,非赋值的运算表达式等》...
b、展开成生成器:
def 函数名():
for 变量 in 序列:
yield 表达式
生成器 = 函数名()
2)语法二:
生成器 = (表达式 for 变量 in 序列 if 条件语句)
a展开成函数
def 函数名():
for 变量 in 序列:
if 条件语句:
yield 表达式
生成器 = 函数名()
补充:python中的三目运算符
c java js 等中的三目运算符:变量 = 条件语句?表达式1:表达式2
python中的三目运算符:变量 = 表达式1 if 条件语句 else 表达式2
三目运算符的功能:判断条件语句是否为True,如果结果是表达式,否则结果是表达式2
函数作为变量
普通变量能做的事情,函数都可以做
"""
a = 10
def func1():
print('=============')
1)用一个变量给另一个变量赋值
b = a
print(b)
c = func1
c()
2)修改变量的值
a = 'abc'
print(a + 'hello')
func1 = 100
3)变量作为序列的元素
list1 = [a, 10]
print(list1)
list2 = [func1, func1(), 10]
print(list2)
print('~~~~~~~~~~~~~~~~')
print(list20)
4)作为函数的参数
def func2(x):
print(x)
a = 10
func2(a)
func2(func1)
5)变量作为函数的返回值
def func3(x, y):
num = x + y
return num
print(func3(1,2))
def func4():
def func5():
print('函数5')
return func5
print(func4())
func4()()
高阶函数
装饰器 = 实参高阶函数 + 返回值高阶函数 + 糖语法
1.实参高阶函数
有一个参数是函数的函数就是实参高阶函数
python中内置的sorted、max,min等函数,以及列表的sort方法都是实参函数
这些函数中都有一个参数key,要求传参的时候传一个函数。
这个函数需要一个参数和一个返回值,参数代表序列中的元素,返回值是比较对象
2.返回值高阶函数
"""
函数的返回时一个函数,这样的函数就是返回值高阶函数
"""
情况一:真正的返回值高阶函数
def func1():
def func2():
print('函数2')
return func2
情况二:假的返回值高阶函数
def func3():
print('函数3')
def func4():
return func3
闭包
1.什么是闭包
闭包就是一个函数,需要满足以下两个条件:
1.函数的返回值是声明在这个函数中的函数(内函数)
2、这个内函数必须使用外函数中的临时变量(外函数中的局部变量)
闭包的作用:保存临时变量的值(函数调用结束后,函数中的数据不销毁)
装饰器
装饰器是python的三大神器之一
import time
1.什么是装饰器:装饰器本质还是一个函数
装饰器的作用:在不修改函数本身的前提下给函数添加功能
语法:
def 函数1(参数1):
def 函数2(args,kwargs):
体现为原函数添加功能的代码
(保证出现:参数1(args,**kwargs))
return 函数2
@函数1
声明需要添加功能的函数
回调函数
1.什么是回调函数:函数的调用是在其他函数的内部满足条件的时候自动调用的函数