Python高级函数:Lambda函数和装饰器
发布时间:2023-06-20 15:55:25
在Python中,高级函数是编写可读性和可扩展性更好的代码的关键。Lambda函数和装饰器是Python高级函数中最常用的两种。本文将探讨这两种高级函数的定义,用法和例子。
Lambda函数
Lambda函数是Python中的一种简单函数,通常用于一次性使用。它由一个lambda关键字后面跟一个参数列表和一个冒号组成,接着是一个表达式。该表达式的返回值即为Lambda函数的返回值。例如:
square = lambda x: x*x print(square(2)) #输出4
它等价于:
def square(x):
return x * x
print(square(2)) #输出4
Lambda函数通常用于排序、过滤和映射等场景。例如,下面的例子展示了如何使用Lambda函数对列表进行排序:
names = ['John', 'Sarah', 'Mike', 'Kate'] print(sorted(names, key=lambda s: s.lower()))
输出:
['John', 'Kate', 'Mike', 'Sarah']
这里的Lambda函数将输入字符串转换为小写字母,并将其用作排序键,以忽略大小写。
装饰器
装饰器是Python中一种特殊类型的函数,它可以修改其他函数的行为,而不需要修改它们的原始代码。装饰器接受一个函数并返回一个新函数,通常在这个新函数中封装原始函数的逻辑。例如:
def timeFunc(func):
def wrapper(*args, **kwargs):
import time
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print('函数 %s 运行时间为 %s 秒' % (func.__name__, end - start))
return result
return wrapper
@timeFunc
def demoFunc():
import time
time.sleep(1)
demoFunc()
输出:
函数 demoFunc 运行时间为 1.0001270771026611 秒
这里的@timeFunc是一个装饰器,用于修改demoFunc函数的行为。它内部定义了一个wrapper函数,该函数在demoFunc被调用时被执行,计算代码运行时间并打印结果。
Lambda函数和装饰器是Python高级函数中最常用的两种,它们可以在编写Python代码时提供非常实用的工具。熟练掌握它们的用法可以大大提高Python程序的效率和可读性。
