python函数
1. 获取函数帮助
- python官方网站:http://docs.python.org/3/library/functions.html#abs
- 交互式命令行 help(fun_name) 查看函数 fun_name的信息。如下:
2. 定义函数
def fun_name(param): pass return 0, param
- def 定义函数的关键词
- param 函数参数
- pass 用来作占位符,什么也不做
- return 返回结果;如果没有return,自动返回None;return None可以简写为return;返回两个值(0, param),实际是作为一个tuple返回
- from define import fun_name 如果要在其它文件中调用fun_name, 可以用这句话来导入(fun_name定义在define.py中)
函数参数
- 位置参数 对于fun_name, param就是一个位置参数,当要用fun_name时必须传入param
- 默认参数 默认参数放在最右侧,在调用时,可以不设置值 注:默认参数的默认值不要是可变值!如下,多次调用add_end,参数L指向对象[],上次的值会被保留下来
例:
3. 函数式编程
函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的。Python对函数式编程提供部分支持。
高阶函数
函数的参数能够接收别的函数;函数名(abs)也是变量;变量(fun)可以指向函数(abs),fun可以实现与abs一样的用法和功能
4. 闭包
一个内部函数(sum)引用在外部作用域(但不是在全局作用域)的变量(a, b),那么内部函数(sum)就被认为是闭包(closure)
作用1:当闭包执行完后,仍然能够保持住当前的运行环境。例希望函数的每次执行结果,都是基于这个函数上次的运行结果
作用2:闭包可以根据外部作用域的局部变量来得到不同的结果
def lazy_sum(a, b): def sum(a, b): return a+b return sum