1. 有名函数和匿名函数
Bash
# 该函数有名称,名称是add
def add(x, y):
return x + y
# 改函数没有名称属于匿名函数,也叫lambda表达式
lambda_add = lambda x, y: x + y
if __name__ == '__main__':
print(add(1,2))
print(lambda_add(1,2))
2.函数当作普通的参数
Bash
# func是一个可以被调用函数,需要传递函数
def common_func(func, *other, **kwargs):
print("func begin")
func(**kwargs)
print("func end")
def func01():
print("执行func01")
def func02(a, b):
print(a + b)
if __name__ == '__main__':
#需要传递函数的名称
#不能传递func01(),加上()代表要调用函数
common_func(func01)
common_func(func02, a=1, b=2)
3.函数作为返回值
Bash
def depart(name):
def print_name():
print(name)
return print_name
if __name__ == '__main__':
# 普通的函数在调用完后,参数就会释放,如果在返回的函数中
# 还有被引用就不会被释放,这个也就是闭包的概念
it = depart("IT")
it()
hr = depart("HR")
hr()
4. lambda表达式
lambda表达式通常逻辑比较简单,主要用在集合的遍历上,可以替换循环,使代码更加
简洁。
Bash
from functools import reduce
number_list = [1, 2, 3, 4, 5]
# 将每个值增加10倍
print(list(map(lambda x: x * 10, number_list)))
# 只保留偶数
print(list(filter(lambda x: x % 2 == 0, number_list)))
# 列表累加
print(reduce(lambda x, y: x + y, number_list))
# 列表累乘
print(reduce(lambda x, y: x * y, number_list))
5.内置函数
除了可以def或者lambda表达式创建自己的函数,python提供了大量内置的函数,通常当内置的函数不满足我们的需求时,才需要自定义函数
简单列举python内置的函数,更多的函数可以参考python官方文档
Bash
# 返回参数的绝对值
print(abs(-1))
# 返回列表的长度
print(len([1, 2, 3, 4]))
# 可以执行代码的函数
x = 1
print(eval('x+1'))
# 返回列表中的最大值
print(max([1, 2, 3, 4, 5]))
# 返回列表中的最小值
print(min([1, 2, 3, 4, 5]))
# 返回列表中的合计值
print(sum([1, 2, 3, 4, 5]))