📅  最后修改于: 2023-12-03 14:51:21.396000             🧑  作者: Mango
装饰器在 Python 中被使用得非常普遍,它们允许在不修改原始函数的情况下对其进行增强或者修改。但是,Python 还允许我们在类中创建装饰器。在这个过程中,一个类实例会被用作装饰器。 在本文中,我们将要介绍如何在 Python 类中创建装饰器。
class Decorator:
def __init__(self, func):
self.func = func
class Decorator:
def __init__(self, func):
self.func = func
def __call__(self, *args, **kwargs):
# 在这里添加要执行的附加代码
print("Before the function is called.")
# 调用原始函数
result = self.func(*args, **kwargs)
# 添加附加代码
print("After the function is called.")
# 返回结果
return result
@Decorator
def my_function():
print("My function has been called.")
class Decorator:
def __init__(self, func):
self.func = func
def __call__(self, *args, **kwargs):
# 在这里添加要执行的附加代码
print("Before the function is called.")
# 调用原始函数
result = self.func(*args, **kwargs)
# 添加附加代码
print("After the function is called.")
# 返回结果
return result
@Decorator
def my_function():
print("My function has been called.")
my_function()
输出结果:
Before the function is called.
My function has been called.
After the function is called.
以上就是在 Python 类中创建装饰器的步骤,使用这种方式可以对函数进行更精细的控制或加强。