如何调用dateutil.rrule.rrule的__str__方法

时间:2016-11-23 17:40:04

标签: python string

dateutil's rrule的源代码中,我注意到类__str__已定义了自己的my_rrule方法。因此,如果我创建rrule的实例str(my_rrule)并调用In [1]: from dateutil.rrule import * In [2]: my_rrule = rrule(DAILY, count=2) In [3]: str(my_rrule) Out[3]: '<dateutil.rrule.rrule object at 0x7f97afed29d0>' ,它会调用该方法。但是,情况似乎并非如此:

__str__

我希望看到类似于源代码中所描述的内容,即&#34;如果传递给rrulestr&#34;将生成此RRULE的字符串。我如何调用特定于班级的&#39; from django.db.models import Count queryset = Order.objects.annotate( num_suborder1=Count('suborder1', distinct=True), num_suborder2=Count('suborder2', distinct=True), ) 方法代替&#39;默认&#39;一个?

1 个答案:

答案 0 :(得分:2)

更新回答

正如Blckknight所指出的那样,在我没有使用最新版本的dateutil之前,在撰写本文时就是2.6.0。使用最新版本,字符串包含重建rrule

所需的信息
In [1]: from dateutil.rrule import *

In [2]: my_rrule = rrule(DAILY, count=2)

In [3]: str(my_rrule)
Out[3]: 'DTSTART:20161124T123554\nFREQ=DAILY;COUNT=2'

In [4]: import dateutil

In [5]: dateutil.__version__
Out[5]: '2.6.0'

旧(不正确)回答

http://dateutil.readthedocs.io/en/stable/_modules/dateutil/rrule.html#rrule上的源代码似乎来自较早版本的rrule。我下载了dateutil 2.0的源代码,并在rrule.py中搜索了__str__,但没有找到任何结果(见下文)。

enter image description here

P.S。以下是我所指的文档中__str__的定义:

enter image description here