用Python编写高级函数:装饰器、生成器、lambda函数等
Python是一门功能强大的语言,其中的高级函数是其最强大的特性之一。高级函数主要包括装饰器、生成器、lambda函数等。
一、装饰器
装饰器是一种 Python 程序设计模式,用于在不修改被装饰函数源代码的情况下,为其添加功能。装饰器通常是一个函数,它将被装饰函数作为参数,并返回修改后的函数。
示例:
def log_decorator(func):
def wrapper(*args, **kwargs):
print(f"Call {func.__name__} with {args}, {kwargs}")
result = func(*args, **kwargs)
print(f"Return result: {result}")
return result
return wrapper
@log_decorator
def add(a, b):
return a + b
print(add(1, 2))
输出结果:
Call add with (1, 2), {}
Return result: 3
3
上述装饰器函数 log_decorator 是一个实现日志功能的装饰器,它用于记录被装饰函数 add 的输入参数和返回值。
二、生成器
生成器是一种能够动态产生数据序列的迭代器,可以大幅减少内存的使用。
示例:
def fib(n):
a, b = 0, 1
for i in range(n):
yield a
a, b = b, a + b
for i in fib(10):
print(i)
输出结果:
0
1
1
2
3
5
8
13
21
34
上述生成器函数 fib 实现了斐波那契数列的产生,使用了 yield 关键字。由于该函数返回的是一个生成器对象,因此在使用时需要通过迭代器的方式来获取数据。
三、lambda函数
lambda 函数是 Python 中的一种匿名函数,可以快速创建一些临时性的函数。
示例:
def operate(func, a, b):
return func(a, b)
result = operate(lambda x, y: x + y, 2, 3)
print(result)
输出结果:
5
上述代码中创建了一个 operate 函数,它接受一个函数和两个参数,并将这两个参数传递给该函数。在使用时,通过 lambda 函数来创建了一个临时性的函数,用于求和操作。
总结
Python 中的高级函数是一种非常强大的特性,可以用于创建各种函数和程序。装饰器、生成器、lambda函数等都是创建高效和优雅代码的重要手段。掌握这些函数能够极大地提高 Python 编码的效率和质量。
