Python语言基础之——三大神器

1.高阶函数

1.函数就是变量

函数就是变量,函数名就是变量名

2.高阶函数

变量可以作为函数参数

实参高阶函数:

def func3(x):
    print(x(1, 2))


func3(lambda m, n: m+n)

系统提供的常见的实参高阶函数:

1.max、min、sorted都是实参高阶函数,有一个参数key需要传一个函数;被传入的函数需要一个参数和一个返回值,这个参数指向的是序列中的元素,返回值是比较对象

2.map函数:
map(函数,序列) - 将序列中所有的元素按照函数指定的规则进行转换, 返回的是map的对象(map就是容器型数据类型中的一种)。
函数需要一个参数和一个返回值,参数指向的是序列中的元素,返回值就是用来替换原来元素的新元素

将列表list3中所有的元素都加1 -> [11, 21, 31, 41]
new_list3 = map(lambda item: item+1, list3)
print(new_list3, list(new_list3))

3.reduce(函数,序列) - 对序列中的元素按照函数提供的功能进行累积的操作
函数需要两个参数,第一个参数是初始化或者上次运算的结果,y指向每一个元素
reduce(函数,序列, 初始值)

list3 = [10, 20, 30, 40]
result = reduce(lambda x, y: x+y, list3)
print(result)

4.返回值高阶函数

def func1():
    def func2(x, y):
        return x + y
    return func2


print(func1()(100, 200))     
func2(100, 200)

2.装饰器

1.装饰器作用

在不修改原函数的前提下给函数添加新的功能

2.什么是装饰器

装饰器的本质就是一个函数(这个函数是一个实参高阶函数也是返回值高阶函数)

无参装饰器的写法:
def 函数名1(函数名2):
def 函数名3(*agrs, *kwargs):
新功能代码
返回值 = 函数名2(
agrs, **kwargs)
return 返回值
return 函数名3

说明:
函数名1 - 装饰器名字,命名的时候和这个装饰器要添加的功能进行关联
函数名2 - 随便命名,指向被添加功能的函数; 可以命名成 fn
函数名3 - 随便命名,在原函数上添加完新的功能以后产生的新的函数
新功能代码 - 实现新加的功能的代码

3.模块

1.什么是模块

一个模块就是一个py文件,py文件的文件名就是模块名

2.在一个模块中使用另一个模块的内容

1.哪些能用:所有在指定if语句外的全局变量都能用

  1. 怎么使用:需要先导入模块
    import 模块名 - 导入后可以使用所有在指定if语句外的全局变量;以'模块名.变量' 来使用变量
    from 模块名 impott 变量1, 变量2,... - 只可以使用这些指定的变量;直接使用变量
    from 模块名 import * - *表示全部,可以使用所有在指定if语句外的全局变量(不推荐使用)
    from 模块名 as 新模块名 - 给模块取别名
    from 模块名 import 变量名1 as 新变量名1,变量名2 - 给变量1取别名

4.导入模块的原理

1.导入模块的原理

当使用import或者from import导入模块的时候,系统会自动将被导入的模块中所有的代码都执行一遍

选择性导入:在被导入的模块中添加if语句:(if name == 'main':),将不希望被其他模块执行的代码放在if语句中

每个模块都有一个属性叫name,这个属性是用来保存当前模块的名字。name默认值就是当前模块对应的py文件的文件名。当我们直接执行某个模块的时候,这个模块的name属性就会自动变成'main'

5.包

什么是包:包就是一种特殊的文件夹,文件都是py文件,自带一个init.py的文件

你可能感兴趣的:(Python语言基础之——三大神器)