Python校验date类型实例触发TypeError错误问题求助
问题产生原因
- 导入方式导致的指代混淆:你使用
from datetime import date, datetime语法完成导入后,代码中的datetime指向的是datetime模块下的datetime类,而非整个datetime模块。 - 类型引用错误:你在
isinstance中传入的第二个参数datetime.date是datetime类的内置方法,并非你要校验的date类型,不符合isinstance第二个参数的类型要求,因此抛出对应报错。
解决方法
有两种常用修复方案,按需选择即可:
方案1:使用已导入的date类型直接校验
既然你已经单独导入了date类型,直接把它作为校验的类型参数即可,修改后函数代码如下:
from datetime import date, datetime def verify_date_dt(in_date): f_date = in_date return isinstance(f_date, date)
修改后调用原有测试代码,会正常返回布尔值True。
方案2:调整导入逻辑,通过模块路径引用类型
如果你习惯用模块前缀区分不同类型,可以把导入逻辑改为直接导入整个datetime模块,再通过模块路径引用date类型:
import datetime def verify_date_dt(in_date): f_date = in_date return isinstance(f_date, datetime.date)
对应测试代码也需要同步调整前缀:
in_date = datetime.date(2021,4,21) print(verify_date_dt(in_date))
内容的提问来源于stack exchange,提问作者Premjit Santra
相关产品推荐
相关产品推荐

