pdb中对args输出格式的调整
在pdb当中输出args
,其行为和程序正常运行期间的行为略有不同。
示例代码:
class MyClass:
def my_func(self, *args, **kwargs):
breakpoint()
print(f"args: {args}")
print(f"kwargs: {kwargs}")
if __name__ == "__main__":
my_class = MyClass()
my_class.my_func(1, 2, 3, a = 1, b = 2)
程序的输出:
PS D:\pyscript> python test.py
> d:\pyscript\test.py(4)my_func()
-> print(f"args: {args}")
(Pdb) args
self = <__main__.MyClass object at 0x000001DD072D0B60>
args = (1, 2, 3)
kwargs = {'a': 1, 'b': 2}
(Pdb) kwargs
{'a': 1, 'b': 2}
(Pdb) c
args: (1, 2, 3)
kwargs: {'a': 1, 'b': 2}
可以看到,正常输出的args
应该只是一个tuple,但是在pdb当中输出了函数传入的所有信息,而且是字典形式。