闭包和装饰器是Python中常用的高级编程特性,可以用于实现一些有趣的功能。下面是一个包含闭包和装饰器的代码示例:
def outer_function(x):
def inner_function(y):
return x + y
return inner_function
closure = outer_function(5)
result = closure(3)
print(result) # 输出8
在这个示例中,outer_function
是一个外部函数,接受一个参数x
。内部函数inner_function
引用了outer_function
的参数x
,并返回x + y
的结果。outer_function
返回了内部函数inner_function
的引用,形成了闭包。通过调用closure
函数,可以使用闭包中的变量x
,并传入一个新的参数y
,得到结果。
def decorator_function(func):
def wrapper(*args, **kwargs):
print("装饰器开始")
result = func(*args, **kwargs)
print("装饰器结束")
return result
return wrapper
@decorator_function
def greeting(name):
print("Hello, " + name)
greeting("Alice")
在这个示例中,decorator_function
是一个装饰器函数,接受一个函数func
作为参数。它定义了一个内部函数wrapper
,该函数在调用被装饰的函数func
之前和之后打印一些信息。最后,装饰器函数返回了内部函数wrapper
的引用。通过在函数定义前加上@decorator_function
,可以将装饰器应用于greeting
函数。当调用greeting
函数时,实际上是调用了被装饰的函数wrapper
。输出结果为:
装饰器开始
Hello, Alice
装饰器结束
这个示例展示了装饰器的功能,可以在函数执行前后执行额外的操作。