Python Tkinter抄Alan D. Moore代码运行报AttributeError求调试
代码错误排查与修复方案
以下是你抄写代码时的所有错误点及对应修复方法:
- 错误1:
DataRecordForm类的get()、reset()方法缩进错误
问题原因:两个方法被写在了__init__方法内部,不属于类的公开方法,外部调用self.recordform.get()时直接抛出AttributeError
修复方法:将两个方法的缩进层级调整到和__init__方法同级 - 错误2:
LabelInput类set方法的Text控件插入逻辑错误
问题原因:代码写为self.input.insert(*'1.0', value),多了不必要的解包符*,会把字符串'1.0'拆成三个独立参数传入,触发参数不匹配错误
修复方法:删除*,改为self.input.insert('1.0', value) - 错误3:植物数据区三个高度输入框布局重叠
问题原因:Min Height、Max Height、Median Height三个控件的grid参数column都设为0,会完全重叠无法正常使用
修复方法:分别调整为column=0、column=1、column=2 - 错误4:保存逻辑变量名拼写错误
问题原因:on_save方法中文件变量命名为fh,创建DictWriter时错写为csv.DictWriter(fn, fieldnames=data.keys()),变量名不匹配会抛出未定义错误
修复方法:把fn改为fh - 可选优化:温度标签多了多余右括号,把
"Temperature(°C))"改为"Temperature(°C)"即可修正显示问题
所有错误修正后代码即可正常运行,填写数据后点击保存按钮会自动生成对应日期的CSV文件存储录入数据。
内容的提问来源于stack exchange,提问作者ColBeans.Python
相关产品推荐
相关产品推荐

