装饰器的用法
Coddy Python 装饰器 课程的第 5 课,共 12 课。
在 Python 中,装饰器是一种函数,它接收另一个函数作为输入,并扩展该输入函数的行为,而不直接修改其代码。装饰器是一种强大的方式,可以灵活且可重复使用地修改或增强函数的行为。
下面是一个简单装饰器函数的示例:
def my_decorator(func):
def wrapper():
print("Before the function is called.")
func()
print("After the function is called.")
return wrapper在这个示例中,my_decorator 函数接收另一个函数 func 作为输入,并返回一个名为 wrapper 的新函数。
wrapper 函数会在调用 func 函数之前和之后添加一些行为。
挑战
简单编写一个名为 debug 的装饰器函数,它接收一个函数 func 作为输入,并返回一个新函数。每次调用这个新函数时,它都会打印 func 的名称和 func 的返回值。
要获取
func的名称,请使用func.__name__。
下面是使用 debug 装饰器的示例:
def hello():
return "Hello"
debug_hello = debug(hello)
debug_hello()在这个示例中,我们使用 debug 装饰器包装 hello 函数,并创建一个名为 debug_hello 的新函数。调用 debug_hello() 时,装饰器会打印:
Calling hello
hello returned: Hello你可以假设传递给
debug的所有函数都不接收参数。
亲手试试
Python 装饰器中的所有课
自己练习: Python 在线编译器