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

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程序的效率和可读性。