2016-11-23 7 views
0

dateutil's rruleのソースコードから、rruleに独自の__str__メソッドが定義されていることがわかりました。したがって、インスタンスmy_rrulerruleに作成し、str(my_rrule)を呼び出すと、そのメソッドが呼び出されることが予想されます。私が代わりにソースコード、すなわち「rrulestrに渡された場合は、このRRULEを生成する文字列」に記載されているもののようなものを見たいdateutil.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>' 

:しかし、これはそうではないように思われます。 'default'の代わりに 'クラス固有の' __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によって指摘しました。最新バージョン文字列が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.

enter image description here

+1

'dateutil' 2.0は最新バージョンではありません。 'pip'で' python-dateutil'をインストールすると2.6になります。ドキュメントは、インストールしたバージョンと完全に一致します。 – Blckknght

関連する問題