首页 > 代码库 > python-day03
python-day03
1.函数式编程:纯粹的函数式编程语言编写的函数没有变量。函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。
2.高阶函数:既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
def add(x,y,f):
return f(x)+f(y)
a.map/reduce: map()函数:接受两个对象,一个是函数,一个是Iterable。map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
reduce()函数:把一个函数作用在一个序列[x1,x2,x3...]上,这个函数必须接受两个参数,reduce把结果继续和序列的下一个 元素做累积计算。
b.filter:用于过滤序列。也是接受一个函数,和一个序列,和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃。返回的是一个Iterator
c.sorted:排序算法
3.返回函数:函数作为返回值。高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。
4.闭包:
5.匿名函数:lambda表示匿名函数,list(map(lambda x:x*x ,[1,2,3,4,5,6,7])) 匿名函数lambda x:x*x 就是def tt(x): return x*x
匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。
6.装饰器:函数对象有一个__name__属性,可以拿到函数的名字。
假设要增强函数的功能,比如在函数调用前后自动打印日志,但又不希望修改函数的定义,这种在代码运行期间动态的增加函数功能的方式,称之为装饰器。(decorator)
7.模块:一个.py文件就称之为模块。为了避免模块名相同,python又引入了按目录来组织模块的方法,称之为‘包’, 包----》模块。
请注意,每一个包目录下都会有一个__init__.py的文件。这个文件时必须存在的。否则python就把这个目录当成普通目录了。而不是一个包。
8.使用模块:使用sys模块,第一步就是导入该模块:import sys 导入之后,我们就有了sys变量指入该模块,利用这个sys这个变量,就可以访问sys模块所有的功能。
9.作用域:_xxx 和__xxx这样的函数或变量就是非公开的,私有的。
python-day03