装饰器
装饰器是 Python 中的一种特殊语法,用于修改或扩展函数或类的行为,而无需直接修改它们的定义。装饰器本质上是一个函数,它接受一个函数作为输入,并返回一个新的函数。通过将装饰器应用到目标函数上,我们可以在不修改原始函数定义的情况下,对其进行包装、修改或添加额外的功能。装饰器在代码重用、封装、日志记录、性能分析等方面非常有用。在 Python 中,我们可以使用 @ 符号将装饰器应用到函数或类上。
下面是一段示例代码,用于计算函数的执行时间
import time
def calculate_execution_time(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
execution_time = end_time - start_time
print(f"Function {func.__name__} took {execution_time} seconds to execute.")
return result
return wrapper
@calculate_execution_time
def my_function():
# 函数逻辑...
my_function()
回调函数
回调函数是一种常见的编程模式,用于异步编程或事件驱动编程中。它是一个函数对象,作为参数传递给其他函数,在特定事件发生或异步操作完成时被调用。回调函数允许我们定义在某个事件发生后要执行的代码逻辑。例如,在异步网络请求中,可以将回调函数传递给异步方法,以便在请求完成时处理返回的数据。回调函数在事件触发后被调用,允许我们根据需要对结果进行处理。
协程函数
协程函数(Coroutine function)是一种特殊类型的函数,它可以暂停执行并稍后继续执行,而不会阻塞其他代码的执行。协程函数通常用于异步编程中,用于处理长时间运行的任务或需要等待 I/O 操作完成的任务。
在 Python 中,协程函数是使用 async def 语法定义的函数。当一个函数被定义为协程函数时,它可以使用 await 关键字暂停自身的执行,并等待其他协程、异步操作或特定的异步对象完成。
下面是一段协程函数的使用的使用示例
import asyncio
async def my_coroutine():
print("Coroutine started")
await asyncio.sleep(1) # 暂停执行,等待1秒
print("Coroutine resumed")
return "Coroutine finished"
async def main():
print("Main started")
result = await my_coroutine() # 等待协程函数执行完成并获取结果
print("Main received:", result)
asyncio.run(main())