这应该不太难,但我似乎无法让它起作用。我想在Python中比较两个datetime.date类型,但我一直收到Type Error:
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: '<' not supported between instances of 'datetime.date' and 'method'
这对我来说毫无意义,因为:print(type(earliestDate))
和 print(type(o.getDate()))
都会给出 <class 'datetime.date'>
我可能做错了什么?
编辑:添加了所有对象中的类示例代码
编辑2:正如你们中的许多人指出的那样,确实缺少了'()'。在我的实际代码中,我通过earliestDate = o.getDate
进行了方法而非值的赋值。下次我会尽量遵守我的代码规范。感谢您们提供的见解,因为我确实来自Java,并且我还没有完全理解Python。
type(o.getDate)
还是type(o.getDate())
? - Willem Van Onsemif o.getDate() < earliestDate:
没有被读成if o.getDate < earliestDate:
了吗? - SiHao1 = Vacancy('2017-03-13T00:00:00.000Z')
并将列表更改为单个条目[o1]
,您的代码对我来说运行得非常好。 - SiHa