将方法局部变量分配给类属性

时间:2018-07-23 10:18:24

标签: python debugging python-decorators

调试时,有时发现在类方法中访问局部变量的值而不必调用pdb.set_trace()很有用。

class Calculator:

    # ...

    def add_and_format(x, y):
        sum = x + y
        return '{:.2f}'.format(sum)

如果在调用sum之后要访问add_and_format,则可以将代码编辑为self.sum = x + y并进行检查。但是,在许多局部变量的情况下,如果我可以在方法周围使用@debug装饰器或某些debug_function()类方法来将所有局部变量作为属性持久化,则将更加简单。我想我的想法基本上等同于

def my_method(self, *args, **kwargs):
    # ... method code
    for k, v in locals().items():
        setattr(self, k, v)
    return result

我见过this answer,这是一个很好的局部解决方案,但是我不确定如何使它在此用例中起作用。

0 个答案:

没有答案