python核心编程笔记chapter 11

函数是对程序逻辑进行结构化和过程化的一种编程方法。能将整块代码巧妙地隔离成易于管理的小块。

函数返回多个对象时实际是返回一个包含多个对象的元组。

创建函数: def语句

python不允许在函数声明之前对其进行引用或调用。

help()和 __doc__

装饰器:装饰函数的包装,返回一个修改后的函数对象。

传递函数:当对一个变量赋值时,实际上是将相同对象的引用赋值给这个变量。

formal arguments:

  位置参数:准确顺序,一致数目。

  默认参数:没有为参数提供值就使用预先定义的默认值。所有位置参数必须出现在默认参数之前。

  可变长度的参数:元组、字典

   非关键字可变长参数(元组):必须在位置和默认参数之后。*

def function_name ([formal_args] *varge_tuple):
    fonction_body_suite

   关键字变量参数(字典);在有不定数目的或者额外集合的关键字的情况中,参数被放入一个字典中,字典中键为参数名,值为相应的参数值。

def function_name ([formal_args] [*vergst,] **vargsd):
    fonction_body_suite

函数式编程:python不是函数式编程语言,但支持函数式编程语言构建。

   匿名函数与lambda:lambda arg1,arg2: expression

   内建函数apply(),filter(),map(),reduce()

filter(func, seq):返回一个使func返回值为true的元素的序列,

map(func, seq): 将函数调用“映射”到每个序列的元素上,并返回一个含有所有值的列表。

reduce(bin_func, seq,init = None):折叠

偏函数应用:将任意数量的参数的函数转化为另一个带剩余参数的函数对象。

变量作用域:局部域和全局域

在python2.1之前,虽然存在多个函数的嵌套,但你不能访问超过两个作用域。

闭包:在一个内部函数里,对外在作用域(但不是全局作用域)的变量进行引用,那么就定义为闭包。

作用域和lambda:在lambda语句中的表达式有和函数相同的作用域。

生成器:带yield语句的函数,能暂停执行并返回一个中间的结果。

    协同程序:可以运行的独立函数调用,可以暂停或挂起,并从程序离开的地方继续或重新开始。

生成器的加强特性:除了next()获得下个生成的值,send()把值发送给生成器,close()要求生成器退出。



你可能感兴趣的:(python核心编程笔记chapter 11)