首页 > 代码库 > 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