Day11总结-2019/08/05

一、生成式

1.生成式基础

生成式就是生成器的简写。语法:生成器 = (表达式 for 变量 in序列)。

2.列表生成式

列表 = list(表达式 for 变量 in序列) / 列表 = [表达式 for 变量 in序列]

3.字典生成式

字典 = dict(表达式 for 变量 in序列)

4.语法二:

生成器 = (表达式 for 变量 in序列 if 条件语句)。

5.三目运算符:

变量 = 表达式1 if 条件语句 else 表达式2

二、函数与变量

函数可以当成是类型是function的变量,变量能做的它都能做。

①给其他变量赋值。
②作为序列中的元素
③作为函数的参数
④作为函数逇返回值

三、高阶函数

1.实参高阶函数:

有一个参数是函数的函数就是实参高阶函数,例如:sorted\max\min等。

2.返回值高阶函数

返回值是函数的函数就是返回值高阶函数

# 练习:声明一个函数operation,要求可以接收一个字符参数,最后根据字符值的不同返回不同功能的函数
# + -> 求多个数和的功能  - -> 求多个数差的功能  * -> 求多个数乘积的功能
def operation(char: str):
    if char == '+':
        def sum1(*args):
            temp = 0
            for x in args:
                temp += x
            return temp
        return sum1
    elif char == '-':
        def diff(*args):
            temp = 0
            for x in args:
                temp -= x
            return temp
        return diff
print(operation('-')(0, 8, 9))
print(operation('+')(10, 8, 9))

3.闭包

闭包就是一个函数,这个函数需要满足以下两个条件:
1.函数的返回值是声明在这个函数中的函数(内函数)
2.这个内函数必须使用外函数中的临时变量(外函数中的局部变量)
闭包的作用:保存临时变量的值(函数调用结束后,函数中的数据不消毁)。

四、装饰器

1.装饰器:

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

2.语法:

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

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

五、回调函数

函数的调用是在其他函数的内部满足条件的时候自动调用的函数。

你可能感兴趣的:(Day11总结-2019/08/05)