加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

比较Python中的两个日期对象:TypeError:’datetime.date’和’

发布时间:2020-12-20 11:58:29 所属栏目:Python 来源:网络整理
导读:这不应该太难,但我似乎无法让它工作. 我想在 Python中比较两个datetime.date类型,但我不断收到类型错误: from datetime import date class Vacancy(object): def __init__(self,date): #date is a datetime string of format 2017-13-03T00.00.000Z self.da
这不应该太难,但我似乎无法让它工作.
我想在 Python中比较两个datetime.date类型,但我不断收到类型错误:

from datetime import date  

class Vacancy(object):
    def __init__(self,date): #date is a datetime string of format 2017-13-03T00.00.000Z
        self.date = datetime.strptime(date[:-1],'%Y-%m-%dT%H:%M:%S.%f').date()

    def getDate(self):
         return self.date


all_objects = [o1,o2,o3,o4,...] #contains objects of type Vacancy
for o in all_objects:
    earliestDate = date(2020,1,1) 
    if o.getDate() < earliestDate:
        earliestDate = o.getDate()

print(earliestDate)

TypeError:’<' 'datetime.date'和'method'的实例之间不支持 这对我没有意义,因为:
????print(type(earliestDate))和print(type(o.getDate()))都给出
< class'datetime.date'>

我能做错什么?

编辑:为all_objects中的对象添加了类示例代码

EDIT2:正如你们许多人所指出的那样,确实缺少'()’.在我的实际代码中,我通过执行earliestDate = o.getDate来分配值的方法instad.下次我会尝试对我的代码更加真实.感谢大家提供的见解,因为我确实来自Java,但我还没有完全理解Python.

解决方法

TypeError应该为您提供解决此问题所需的所有信息.以下是解释它的方法:

TypeError: '<' not supported between instances of 'datetime.date' and 'method'

>’<'不支持意味着您在使用<时遇到错误运算符,你已经知道了.
>比较不起作用,因为您要比较的事情之一不是datetime.date实例.你也已经有了这个.
>如果您使用o.getDate而不是o.getDate(),那么您将获得方法类型.在Python中,您可以根据需要传递方法作为值,就像lambdas或函数一样.但是,在这种情况下,这不是您想要的,因此请确保在想要调用方法的任何地方使用(),即使它不接受任何参数.
>错误消息中类型的顺序也很有趣. datetime.date出现在方法之前意味着日期在左侧,有问题的值在右侧.在您的情况下,earliestDate持有方法而不是datetime.date.
>现在我们知道最早的日期是问题,它在哪里更新? earliestDate = date(2020,1)显然是一个日期,但是earliestDate = o.getDate()怎么样?它使用括号,因此o.getDate()必须返回一个方法.
>鉴于您的代码,Vacancy将始终将self.date设置为日期,否则将抛出异常(类似于ValueError:时间数据’xxx’与格式’%Y-%m-%dT%H不匹配: %M:%S%F’).我猜你的代码看起来不一样,并且Vacancy的初始化在某种程度上是错误的.这是提供MCVE的好处:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读