repr()でわからないこと
こちらのサイトで、
repr() メソッドを定義することで、この関数によりそのクラスのインスタンスが返すものを制御することができます。
とありました。また、同じサイトで
object.str(self)
オブジェクトの「非公式の (informal)」あるいは表示に適した文字列表現を計算するために、 str(object) と組み込み関数 format(), print() によって呼ばれます。戻り値は string オブジェクトでなければなりません。
str() が有効な Python 表現を返すことが期待されないという点で、このメソッドは object.repr() とは異なります: より便利な、または簡潔な表現を使用することができます。
とあります。
python
1def __str__(self): 2return repr(self.value)
の処理はどうなるのでしょうか?
下のプログラムは上でわからない部分のある参考にしたプログラムの一部です。
python
1 2class IOException(Exception): 3 #__int__(self):int()関数を使うときに呼び出されるメソッド 4 def __init__(self, value): 5 self.value = value 6 #__str__(self):str()関数,組み込み関数 format(), print() を使うときに呼び出されるメソッド 7 def __str__(self): 8 #repr()は引数付きのコンストラクタ(または初期化子)を文字列で返してくれる関数 9 return repr(self.value)
repr() メソッド
は
__repr__() メソッド
の間違いと思われるのでそうであれば修正願います。
質問は正確に!
https://teratail.com/help#about-markdown
文章中のコード の記法を使って、`__str__` や `__repr__` と記載しましょう。
そうすると斜体にフォーマットされずに、まともに読めるようになります。
最後のコードはどこからでてきましたか?
出典もしくはクラス全体のコードが書いてあるとそのクラスでのメソッドの意図を解説できる可能性があります(*)が、このメソッドだけ抜き出されているせいでそういう説明が不可能になっています。
(*)機能の説明のためのコードだと「どのように動くかを確認する」という意図かもしれません。そういうコードを見てこれは何の意味があるんだろう? と悩むのは不毛です。というような回答になるかもしれません。その場合はもうちょっと存在意義が実感できるコードが回答としてでてくる可能性もあります。
変更しました。
回答2件
あなたの回答
tips
プレビュー