Python Decorator访问自

Python Decorator访问自,第1张

概述参见英文答案 > Python class method decorator with self arguments?                                    4个 这是一个Python类中的示例方法: def publish_aggregate_account_group_stats(self, account_group_token): message = 参见英文答案 > Python class method decorator with self arguments?                                    4个
这是一个Python类中的示例方法:

def publish_aggregate_account_group_stats(self,account_group_token):    message = {        "type": "metrics-aggregate-account-group-stats","accountGroupToken": account_group_token    }    try:        self._get_writer().write(message)    except:        self._put_cache(message)

在我的班级中有一些方法都运行try / except,我认为可以通过简单地创建一个装饰器来清理或清理它来为我处理.我只是不确定装饰器通过访问self来看起来/工作.

解决方法 这样的事情会起作用:

from contextlib import contextmanagerclass Test(object):    def __init__(self):        self.j = set()    @contextmanager    def handle_exc(self,msg):        try:            yIEld        except:            print('adding to internal structure:',msg)            self.j.add(msg)    def test(self):        m = 'snth'        with self.handle_exc(m):            raise Exception('error')

装饰器很难在这里使用,因为你在函数本身内创建了值,所以外部装饰者永远不会知道它们,除非你找到一种方法来传播它们(通过一定的例外或其他东西).

总结

以上是内存溢出为你收集整理的Python Decorator访问自全部内容,希望文章能够帮你解决Python Decorator访问自所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://outofmemory.cn/langs/1197428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存