python 高阶函数与装饰器

文章介绍了Python中的高阶函数概念,这种函数可以接受其他函数作为参数或返回函数。通过示例展示了如何定义和使用高阶函数,以及装饰器的原理,装饰器用于在不修改原代码的情况下扩展或修改函数行为,例如记录函数执行时间。
摘要由CSDN通过智能技术生成

高阶函数指的是能够接受函数作为参数或者返回函数作为结果的函数。在 Python 中,函数名可以作为变量名使用,因此我们可以将函数作为参数传递给另一个函数,或者将函数作为结果返回。高阶函数在函数式编程中非常常见,它可以使代码更加简洁、灵活和易于复用。

以下是一个示例,演示了如何定义一个接受函数作为参数的高阶函数:

def apply(func, arg):
    return func(arg)

def add_one(num):
    return num + 1

print(apply(add_one, 2))  # 输出 3

在上面的例子中,apply 函数接受两个参数,一个是函数名,一个是函数的参数。它通过调用传入的函数来处理参数,并将结果返回。

Python装饰器是一种语法结构,它允许我们通过在代码中包装函数、方法、类等对象来修改它们的行为。装饰器本质上是一个可调用对象,它接受一个函数作为输入,并返回一个新的函数作为输出。当我们在函数定义前面添加一个装饰器时,Python会自动将函数传递给装饰器,并用装饰器返回的新函数替换原始函数定义。

装饰器通常用于在不修改现有代码的情况下扩展或修改现有函数或类的行为,以实现代码的重用和简化。常见的装饰器包括用于记录函数执行时间、验证函数输入参数、缓存函数返回结果等。

下面是一个简单的装饰器示例,用于记录函数执行时间:

import time

def timeit(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f"Function {func.__name__} took {end-start} seconds to execute.")
        return result
    return wrapper

@timeit
def my_function():
    time.sleep(2)

my_function()
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值