装饰器类和装饰器函数之间的区别

装饰器类和装饰器函数之间的区别,第1张

装饰器类和装饰函数之间的区别

如果您可以编写函数来实现装饰器,则应首选它。但是并非所有装饰器都可以轻松地编写为一个函数-例如,当您要存储一些内部状态时。

class counted(object):    """ counts how often a function is called """    def __init__(self, func):        self.func = func        self.counter = 0    def __call__(self, *args, **kwargs):        self.counter += 1        return self.func(*args, **kwargs)@counteddef something():    passsomething()print something.counter

我见过人们(包括我自己)经过荒唐的努力,只用函数编写装饰器。我仍然不知道为什么,一个班级的开销通常可以忽略不计。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5674370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存