str()がJavaのクラスでオーバーライドするtoString()メソッド(C#のToString()メソッド)のイメージです。repr()は引数付きのコンストラクタ(または初期化子)を文字列で返してくれる関数と解釈できます。 datetimeモジュールで確認すると分かりやすいです。 >>> import datetime >>> today = datetime.date.today() >>> str(today) '2018-04-12' >>> repr(today) 'datetime.date(2018, 4, 12)' >>> today datetime.date(2018, 4, 12) >>> x = eval(repr(today)) >>> today - x datetime.timedelta(0) 上記のコードでstr(today)で出力される‘2018-0