Python 如何生成表示rrule对象的可读字符串?

Python 如何生成表示rrule对象的可读字符串?,python,formatting,rrule,Python,Formatting,Rrule,我的应用程序允许用户定义对象的调度,并将其存储为rrule。我需要列出这些对象,并显示类似“每天下午4:30”的内容。有一些可用的方法可以“精确格式化”rrule实例?您只需提供一个\uuu str\uuuu方法,当需要将对象呈现为字符串时,就会调用该方法 例如,考虑下面的类: class rrule: def __init__ (self): self.data = "" def schedule (self, str): self.data =

我的应用程序允许用户定义对象的调度,并将其存储为rrule。我需要列出这些对象,并显示类似“每天下午4:30”的内容。有一些可用的方法可以“精确格式化”rrule实例?

您只需提供一个
\uuu str\uuuu
方法,当需要将对象呈现为字符串时,就会调用该方法

例如,考虑下面的类:

class rrule:
    def __init__ (self):
        self.data = ""
    def schedule (self, str):
        self.data = str
    def __str__ (self):
        if self.data.startswith("d"):
            return "Daily, %s" % (self.data[1:])
        if self.data.startswith("m"):
            return "Monthly, %s of the month" % (self.data[1:])
        return "Unknown"
它使用
\uuu str\uu
方法打印自己。针对该类运行以下代码时:

xyzzy = rrule()
print (xyzzy)
xyzzy.schedule ("m3rd")
print (xyzzy)
xyzzy.schedule ("d4:30pm")
print (xyzzy)
您将看到以下输出:

Unknown
Monthly, 3rd of the month
Daily, 4:30pm

据我所知不是这样,但是写起来很容易。这里有一个关于
\uuuu repr\uuuu
\uu str\uuuu
的很好的解释->@syntherPatel是的,我读过,很好。但我的问题更像是如何使用
\uuu str\uuuu
来实现,因为它是为最终用户设计的。@Blender我可以将
rrule
实例的一些/所有内部属性制作一个格式化字符串,但我要寻找的是更自然的内容,因此任何人都可以在不进行“解析”的情况下快速看到重复这些参数。您可以用您想要的表示形式覆盖str方法。定义str(self):返回“%d:%d”%(小时,分钟)。。等