で_str_方法にもかかわらず、オブジェクトを印刷することはできません:は、私は、属性<code>title</code>と<code>author</code>と方法私<code>Book</code>クラスで<code>_str_</code>を定義したクラス
今def _str_(self):
book_line = "{title} by {author}".format(title=self.title, author=self.author)
return book_line
、私はこのクラスのインスタンスを作成するときに(たとえばbook1
)、属性に値を割り当て('title1'
、'author1'
)、オブジェクトを印刷しようとすると、Pythonはbook_line
を返しません。
代わりに、私はこの厄介な出力を得る<\_main\_.Book object at 0x02BC9A30>
。一方、book1._str_()
を実行すると、book_line
が返されます。
どうしたのですか?
よろしくお願い致します。私はそれにかなり新しいです。ちなみに、なぜPythonはスクリプトを実行したときにそれを間違いとみなしませんでしたか? '_str_'は完全に有効な関数名であるため、 – Sylwia
です。 Pythonはあなたが '' __str__'を意味していることを知らない –
これはまだ有効なメソッド名なので、技術的に誤植ではありません。 – Pythonista