如何解决装饰器是如何用 Python 中的类实现的?
def decorator_function(original_function):
def wrapper_function():
print('wrapper_function executed before {}'.format(original_function.__name__))
return original_function()
return wrapper_function
@decorator_function
def display():
print('display function ran...')
以上语法可以翻译如下: display = decorator_function(display)
同样的事情可以用一个类来完成...
class decorator_class(object):
def __init__(self,original_function):
self.original_function = original_function
def __call__(self):
print('call method before {}'.format(self.original_function.__name__))
self.original_function()
@decorator_class
def display():
print('display function ran...')
我能理解这个实现。但我不明白语法是如何在幕后翻译的,就像我在装饰器函数的情况下提到的那样。 我也无法理解如何使用 @classmethod 和 @staticmethod 实现装饰器。 有人可以帮忙举个例子吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。