Python 捕获变量中_repr__函数的输出
我有以下代码库:Python 捕获变量中_repr__函数的输出,python,Python,我有以下代码库: from datetime import datetime class Person: def __init__(self,day,month,year): self.day = day self.mon = month self.year = year def __repr__(self): if self.day < 10: day = "0" + str(sel
from datetime import datetime
class Person:
def __init__(self,day,month,year):
self.day = day
self.mon = month
self.year = year
def __repr__(self):
if self.day < 10:
day = "0" + str(self.day)
else:
day = str(self.day)
if self.mon < 10:
mon = "0" + str(self.mon)
else:
mon = str(self.mon)
display = day + "-" + mon + "-" + str(self.year)
return display
def sortdates(l1):
for dates in l1:
date.finalbirthdate = datetime.strptime(str(print(dates)),"%d-%m-%Y")
print (date.finalbirthdate)
if __name__ == '__main__':
p1 = Person(18,9,1984)
print (p1)
p2 = Person(13,1,1988)
print (p2)
sortdates([p1,p2])
现在sortdates函数的主要功能是根据日期对Person对象进行排序。为此,我需要将Person对象的字符串表示形式转换为datetime对象
另外,由于必须这样做,我必须以某种方式将字符串表示形式捕获到一个变量中,并将其传递给datetime.strtime函数
有人能告诉我怎么做吗
提前感谢。正确的方法是为您的Person对象定义uuu lt_uuuuuuuuuuuuuuuuuuuuuuuuuuugt_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;这样,Person对象就可以自己进行排序
class Person:
def __init__(self,day,month,year):
self.day = day
self.mon = month
self.year = year
def _as_date(self):
return datetime.date(self.year, self.mon, self.day)
def __lt__(self, other):
return self._as_date() < other._as_date()
def __gt__(self, other):
return self._as_date() > other._as_date()
def __eq__(self, other):
return self._as_date() == other._as_date()
def __ne__(self, other):
return ! self.__eq__(other)
def __repr__(self):
return '{}-{}-{}'.format(str(self.day).zfill(2),
str(self.mon).zfill(2),
self.year)
你为什么不用str来代替。。。?您可以使用repl函数reprdates来完成此操作-删除strprint…不知道为什么datetime会更改为datetime。。。python只有datetime,可以在标准库中导入。我可以使用它,但主要问题仍然存在。如何在变量中捕获str的输出以传递给datetime.strtime函数?是的,s=reprp1似乎正在工作!谢谢。
if __name__ == '__main__':
p1 = Person(18,9,1984)
print (p1)
p2 = Person(13,1,1988)
print (p2)
sorted_dates = sorted([p1,p2])