欢迎访问宙启技术站
智能推送

Python函数编程初学者的指南

发布时间:2023-06-26 20:52:45

Python函数编程是一种强大的编程方法,它可以使你的代码更健壮、可重用性更高。这一篇文章是初学者的指南,旨在介绍Python函数编程的应用,并为你提供实践经验。

1.函数是什么?

函数是一种能够独立完成任务的代码块。函数最主要的功能就是把一段代码封装起来,使得它可以被重复使用。用函数可以减少代码冗余,提高代码的可读性和可维护性。Python中定义函数的语法如下:

def function_name(parameters):
    # 函数体
    return [expression]

其中,function_name是函数的名称,parameters是函数的参数列表,函数体是完成任务的代码块,return语句是函数的返回值。

2.函数的参数

函数的参数可以是必选参数、默认参数、可变参数和关键字参数。

(1)必选参数:必须按照顺序传递,否则会抛出TypeError异常。示例代码如下:

def func(a, b):
    return a + b
print(func(2, 3)) # 输出5

(2)默认参数:在函数定义时给参数一个默认值,当函数调用时不传入参数时,会使用默认值。示例代码如下:

def func(a=2, b=3):
    return a + b
print(func()) # 输出5

(3)可变参数:传入不定数量的参数,可以是任意数量的参数。示例代码如下:

def func(*arg):
    return sum(arg)
print(func(1, 2, 3, 4, 5)) # 输出15

(4)关键字参数:允许你传入0个或任意个含参数名的参数。示例代码如下:

def func(a, b, **kw):
    if 'c' in kw:
        c = kw['c']
    else:
        c = 0
    return a + b + c
print(func(1, 2)) # 输出3
print(func(1, 2, c=3)) # 输出6

3.匿名函数

匿名函数不定义函数名,使用lambda关键字定义函数。下面是一个匿名实现求和的函数示例:

sum_fn = lambda x, y: x + y
print(sum_fn(1, 2)) # 输出3

4.高阶函数

高阶函数指的是函数的参数或返回值是函数本身或函数的结果。与其他语言一样,Python提供了map和filter函数来处理序列。map函数用于将一个序列中的每个元素都应用到一个函数中,filter函数用于从序列中筛选出满足条件的元素。

示例代码如下:

list_a = [1, 2, 3, 4, 5]
list_b = list(map(lambda x: x+1, list_a))
print(list_b) # 输出[2, 3, 4, 5, 6]

list_c = list(filter(lambda x: x%2==0, list_a))
print(list_c) # 输出[2, 4]

5.装饰器

在函数定义的前面添加装饰器,可以在不修改函数代码的情况下增加函数的功能。装饰器的作用是在函数运行之前或之后添加代码。示例代码如下:

def my_decorator(func):
    def wrapper():
        print('do something before')
        func()
        print('do something after')
    return wrapper

@my_decorator
def say_hello():
    print('hello!')

say_hello()

输出结果为:

do something before
hello!
do something after

6.闭包

闭包是指一个内部函数引用了其外部函数的变量或者参数,这样内部函数就可以在外部函数执行完成后继续访问这些变量或参数。闭包常用于实现装饰器和函数返回值。示例代码如下:

def my_outer_func(x):
    def my_inner_func(y):
        return x + y
    return my_inner_func

my_closure = my_outer_func(10)
print(my_closure(5)) # 输出15

在该代码片段中,闭包my_closure包含了外部变量x=10和内部变量y=5。