2016-11-23 2 views
0

dateutil's rrule의 소스 코드에서 rrule 클래스에 고유 한 __str__ 메서드가 정의되어 있음을 발견했습니다. 따라서 인스턴스 my_rrulerrule으로 만들고 str(my_rrule)을 호출하면 해당 메서드가 호출 될 것으로 예상됩니다. 내가 대신 소스 코드, 즉 "rrulestr에 전달 된 경우이 RRULE을 생성 할 문자열"에 설명되어 있습니다 어떤 식으로 뭔가를보고 싶다dateutil.rrule.rrule.rrule의 __str__ 메서드 호출 방법

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__ 메서드를 호출 할 수 있습니까? 내가 글을 쓰는 시점에서 dateutil, 즉 2.6.0의 최신 버전을 사용하지 전에

+0

당신은 아마도'도움 (dateutil.rrule.rrule)를'의미합니까 : 여기에 언급 된 문서의 __str__의 정의는? – elethan

+1

이 문제를 재현 할 수 없습니다. 'dateutil'의 어떤 버전을 사용하고 있습니까? 확실하지 않은 경우'dateutil .__ version__'을 출력 해보십시오. – Blckknght

+0

버전 2.4.2를 사용 중입니다. 아래에 귀하의 의견에 따라, 나는 2.6으로 업그레이 드하는 중이 야하지만 명령 줄에서'sudo apt-get install python-dateutil' 명령을 실행하면 "python-dateutil은 이미 최신 버전입니다 (2.4.2 -1)". '수동으로'버전 2.6을 설치해야합니까? –

답변

1

업데이트 대답

같이, Blckknight에 의해 지적했다. (잘못된)

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의 이전 버전에서 것을 나타납니다 답변 : 최신 버전으로 문자열은 rrule가 재구성하는데 필요한 정보가 포함되어 있습니다. dateutil 2.0의 소스 코드를 다운로드하고 rrule.py__str__으로 검색했지만 결과가 없습니다 (아래 참조).

enter image description here

P.

enter image description here

+1

'dateutil' 2.0은 최신 버전이 아닙니다. 'python-dateutil'을'pip'로 설치할 때 2.6이됩니다. 문서는 내가 설치 한 버전과 정확히 일치합니다. – Blckknght