如果目标是帮助您跟踪变量,您可以编写一个简单的函数来标记变量并返回其值和类型。例如,假设i_f = 3.01,您将其舍入为一个整数i_n以在代码中使用,然后需要一个字符串i_s,该字符串将进入报告。
def whatis(string, x):
print(string+' value=',repr(x),type(x))
return string+' value='+repr(x)+repr(type(x))
i_f=3.01
i_n=int(i_f)
i_s=str(i_n)
i_l=[i_f, i_n, i_s]
i_u=(i_f, i_n, i_s)
report='\n'+20*'#'+'\nThis is the report:\n'
report+= whatis('i_f ',i_f)+'\n'
report+=whatis('i_n ',i_n)+'\n'
report+=whatis('i_s ',i_s)+'\n'
report+=whatis('i_l ',i_l)+'\n'
report+=whatis('i_u ',i_u)+'\n'
print(report)
这将用于调试时在窗口中打印并生成报告字符串。唯一的缺点是每次调用函数时都需要两次输入变量。
我是 Python 新手,发现这是记录编程过程中所有对象的非常有用的方法。一个缺陷是,如果 whatis() 调用在其所使用的过程之外描述的函数,则会失败。例如,int(i_f) 只有在 Python 知道 int 函数时才是有效的函数调用。您可以使用 int(i_f**2) 调用 whatis(),但如果由于某种奇怪的原因选择定义一个名为 int_squared 的函数,则必须在使用 whatis() 的过程内部声明它。