四时宝库

程序员的知识宝库

python 函数进阶(Python函数进阶技巧)

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]))

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接