调试时,有时发现在类方法中访问局部变量的值而不必调用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,这是一个很好的局部解决方案,但是我不确定如何使它在此用例中起作用。