一、功能
1.最大化代码重用
2.最小化冗余
二、应用
1.声明和调用
注:执行时记忆不同于JAVA等静态编码语言,当写好的函数或方法编译成功时,函数既已存在;
而在Python中,动态解释型脚本语言执行至该行才会执行,否则不会被定义。
2.返回值
三、作用域
四、参数
五、Lambda 表达式
1.表达式而非语句
2.函数主体为单一表达式,而非语句块
3.优势
(1)函数嵌套更加便捷
(2)替代实现多重分支
x, y = 5, 3
# operator = 'add'
# operator = input('operator = ')
def add(a, b):
return a + b
def subtract(a, b):
return a - b
# 1一般方法
# if operator == 'add':
# print(add(a, b))
# elif operator == 'sub':
# print(subtract(a, b))
# 2优势方法
action = {
'a': add,
's': subtract,
'm': lambda a, b: a * b,
'd': lambda a, b: a / b,
}
# print(action['m'](x, y)) # 直接获取键值
print(action.get('f', add)(x, y)) # 利用get函数获取键值,优势:输入的键不存在不会报错,同时可以写入默认值
其中的add函数即委托函数
(3)作为回调函数处理句柄列便捷
# 作为回调函数处理句柄列便捷 # 需求:根据输入的操作符的不同执行相应的操作 x, y = 5, 3 def add(a, b): return a + b def subtract(a, b): return a - b def calcuate(a, b, func): return func(a, b) print(calcuate(x, y, subtract))
print(calcuate(x, y, lambda a, b: a * b))
六、函数工具
1.编程语言
主流的编程语言范式包括:
- 面向过程:常见的C,特性是基于一些基本的语句
- 面向对象:如C++,Java,PHP等
- 函数式编程:Lisp
而Python这三种均支持。
2.工具函数
- 映射操作可迭代对象 map()
- 从可迭代对象中选择过滤项 filter()
- 合并迭代项 functools.reduce()