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])