1. vars
vars(objcet) 函数返回对象object的属性和属性值的字典对象
def test(a, b): # {'a': 10, 'b': 20} 常用打印函数的所有入参 print(vars()) return a + b if __name__ == '__main__': test(10, 20)
返回对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值。
2.locals
def test(a, b): tmp = list() tmp.append(a) tmp.append(b) # {'a': 10, 'b': 20, 'tmp': [10, 20]} # 获取函数中的入参及内部的所有局部变量 print(locals()) return a + b if __name__ == '__main__': t = test(10, 20)
3. traceback.print_exc()
mport traceback def test(a, b): c = 1 / 0 # Traceback (most recent call last): # File "/Users/xx/xx/xx-xx/debug技巧/c01常用的内置函数_vars.py", line 15, in <module> # t = test(10, 20) # File "/Users/xx/xx/xx-xx/debug技巧/c01常用的内置函数_vars.py", line 9, in test # 精确定位到第几行 # c = 1 / 0 # ZeroDivisionError: division by zero print(traceback.format_exc()) return a + b if __name__ == '__main__': t = test(10, 20)
# TODO