问题描述
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 (将#修改为@)