函数式编程

函数式编程

一等对象

函数是一等对象。一等对象应具有的特性:

  • 在运行时创建
  • 能赋值给变量或数据结构中的元素
  • 能作为参数传给函数
  • 能作为函数的返回结果

整数、字符串和字典都是一等对象。

高阶函数

接受函数为参数,或者把函数作为结果返回的函数是高阶函数。比如map函数、sorter函数、filiter函数、reduce函数。

匿名函数

lambda 关键字专用于创建匿名函数,lambda 函数定义体中只能使用纯表达式。不能赋值,使用 while 和 try 等语句

python 可调用对象

  • 用户定义函数 如使用 def,lambda创建的函数
  • 内置函数 使用c语言实现的函数,如len或time。strftime
  • 内置方法 使用c语言实现的方法,如dict.get
  • 方法 在类的定义体中定义的函数
  • 类 调用类时会调用类的 new 方法,然后运行 init 方法
  • 类的实例 如实现了 call 方法,实例可作为函数调用
  • 生成器函数 使用yield 关键的函数或方法,生成器函数返回生成器对象