本文来自微信公众号 “Python之禅”,作者:刘志军,纷传经授权发布。
今天写代码,大部分代码都是用Copilot辅助完成,ChatGPT除了写代码牛,解决bug能力也是一绝。
昨天遇到一个这样的错误
sqlalchemy.orm.exc.UnmappedInstanceError: Class 'builtins.NoneType' is not mapped
这个错误我之前并没有遇到过,看一遍代码也没看出啥问题。
不管了,直接这行错误放到ChatGPT,不加任何多余的信息,也是想测试下ChatGPT是否能理解我的问题。
读完这段话基本就理解是什么原因导致的。因为你添加一个记录到数据库时,是一个对象实例 None。
然后我去查代码,发现果然是这个原因, update 忘记返回对象了。
结果调用的时候article变量变成了None。
另外,ChatGPT担心你不明白,还给你了一个保姆级示例教程
第一步:定义一个映射类(所谓映射类,就是数据库中的某个表对应的类)
第二步:创建实例
第三步:将实例加入session并提交事务
Ensure you are adding a valid instance of a mapped class, like User in this example, instead of None or any other unmapped class.
确保添加的对象是一个映射类的实例对象,而不是None或者其他非映射类的对象。
这比任何一个有经验的程序员解释还要明白。怪不得我们一个学习群问技术问题的越来越少了。