Python第一章 函数2020-02-18
https://developer.aliyun.com/lesson_1782_14895#_14895
第一章 函数
1、递归
2、高阶函数:接收函数作为参数,或者将函数作为返回值的函数。
python中,函数是一等对象。
调用者/使用者需要提前知道函数的功能
当使用函数作为参数时,实际上是将指定的代码传递进了目标函数
这里的学习内容才是适合自己目前所处阶段的、能够自感舒服的、有收获感的、完全吸收的内容。
3、匿名函数:
lambda函数表达式
lambda 参数列表: 返回值
# 匿名函数一般作为参数使用,其他地方不使用
filter()
r = filter(lambda i: i> 5, l)
map()
r= map(lambda i: i + 1, l)
4、sort()排序
sort()默认比较字符串元素的大小
a.sort(key=len)以字符串长度作为参数
a.sort(key=int)将元素都转换为整型后进行排序
# sorted可以对任意序列进行排序
# 并且不会影响到原来的对象,而是返回一个新对象
sorted(a, key=int)
5、闭包:函数作为返回值
# 闭包
# 形成必报的要件:
# 1、函数嵌套
# 2、将内部函数作为返回值返回
# 3、内部函数必须使用的外部函数的变量
def make_averager():# 1、函数嵌套
nums = []# 局部变量
# 船舰一个函数,用来计算平均值
def averager(n):
# 将n添加到列表中
nums.append(n)
#求平均值
return sum(nums)/len(nums)
return averager # 2、将内部函数作为返回值返回
print(averager(10))# 3、内部函数必须使用的外部函数的变量
print(averager(20))
print(nums)#会报错,外面看不到
6、装饰器引入和使用
# 希望在不修改原函数情况下,对函数进行扩展
# 只需要根据现有的函数,来创建一个新的函数
# 开闭原则(OCP)
# 程序的设计,要开发对程序的扩展,要关闭对程序的修改
# 对扩展开放,对修改关闭
*args **kwargs
@begin_end装饰器