回答編集履歴

5

fix answer

2022/10/24 08:23

投稿

ps_aux_grep
ps_aux_grep

スコア1579

test CHANGED
@@ -12,4 +12,4 @@
12
12
 
13
13
  と書かれてますね.質問のコードでは`str(book)`や`print(book)`として呼ばれたらタイトル`self.title`を返すようにしています.公式の言う通り,有効なPython表現を返す必要がないのが特徴です.言い換えれば,自分のわかりやすいように文字列を返して良いメソッドです.
14
14
 
15
- 逆に`__repr__`は`eval(repr(book))`とてオブジェクトに戻せるような文字列を返さなくてはなりません.が今回はあまり関係ないので忘れてもらって結構です.
15
+ 逆に`__repr__`は`eval(repr(book))`と書いてオブジェクトに戻せるような(有効なPython表現の)文字列を返さなくてはなりません.が今回はあまり関係ないので忘れてもらって結構です.

4

fix context

2022/10/24 08:22

投稿

ps_aux_grep
ps_aux_grep

スコア1579

test CHANGED
@@ -9,6 +9,7 @@
9
9
 
10
10
  > オブジェクトの「非公式の (informal)」あるいは表示に適した文字列表現を計算するために、[str(object)](https://docs.python.org/ja/3/library/stdtypes.html#str)と組み込み関数[format()](https://docs.python.org/ja/3/library/functions.html#format),[print()](https://docs.python.org/ja/3/library/functions.html#print)によって呼ばれます。戻り値は[string](https://docs.python.org/ja/3/library/stdtypes.html#textseq)オブジェクトでなければなりません。
11
11
  > [\_\_str__()](https://docs.python.org/ja/3/reference/datamodel.html#object.__str__)が有効な Python 表現を返すことが期待されないという点で、このメソッドは[object.\_\_repr__()](https://docs.python.org/ja/3/reference/datamodel.html#object.__repr__)とは異なります: より便利な、または簡潔な表現を使用することができます。
12
- > 組み込み型 object によって定義されたデフォルト実装は、 object.\_\_repr__() を呼び出します。
13
12
 
14
- 質問のコードでは`str(book)`や`print(book)`として呼ばれたらタイトル`self.title`を返すようにしています.
13
+ と書かれてますね.質問のコードでは`str(book)`や`print(book)`として呼ばれたらタイトル`self.title`を返すようにしています.公式の言う通り,有効なPython表現を返す必要がないのが特徴です.言い換えれば,自分のわかりやすいように文字列を返して良いメソッドです.
14
+
15
+ 逆に`__repr__`は`eval(repr(book))`としてオブジェクトに戻せるような文字列を返さなくてはなりません.が今回はあまり関係ないので忘れてもらって結構です.

3

fix answer

2022/10/24 07:50

投稿

ps_aux_grep
ps_aux_grep

スコア1579

test CHANGED
@@ -3,7 +3,7 @@
3
3
  book = Book()
4
4
  print(book)
5
5
  ```
6
- のように書くと,`__str__()`なしではオブジェクト情報はid(例: `<__main__.Book object at 0x102d195e0>`)しか得られないのに対して,`__str__()`の中に書いた情報を`print`文で表示してくれます.正しくは`str(book)`としたときに返すべき文字列を決定するメソッドです.
6
+ のように書くと,`__str__()`なしではオブジェクト情報はid(例: `<__main__.Book object at 0x102d195e0>`)しか得られないのに対して,`__str__()`の中に書いた情報を`print`文で表示してくれます.他にも`str(book)`としたときに返すべき文字列を決定するメソッドです.
7
7
 
8
8
  [公式](https://docs.python.org/ja/3/reference/datamodel.html#object.__str__)から抜粋すると
9
9
 
@@ -11,4 +11,4 @@
11
11
  > [\_\_str__()](https://docs.python.org/ja/3/reference/datamodel.html#object.__str__)が有効な Python 表現を返すことが期待されないという点で、このメソッドは[object.\_\_repr__()](https://docs.python.org/ja/3/reference/datamodel.html#object.__repr__)とは異なります: より便利な、または簡潔な表現を使用することができます。
12
12
  > 組み込み型 object によって定義されたデフォルト実装は、 object.\_\_repr__() を呼び出します。
13
13
 
14
- 質問のコードでは`str(book)`呼ばれたらタイトル`self.title`を返すようにしています.
14
+ 質問のコードでは`str(book)`や`print(book)`として呼ばれたらタイトル`self.title`を返すようにしています.

2

add documents context

2022/10/24 07:50

投稿

ps_aux_grep
ps_aux_grep

スコア1579

test CHANGED
@@ -5,4 +5,10 @@
5
5
  ```
6
6
  のように書くと,`__str__()`なしではオブジェクト情報はid(例: `<__main__.Book object at 0x102d195e0>`)しか得られないのに対して,`__str__()`の中に書いた情報を`print`文で表示してくれます.正しくは`str(book)`としたときに返すべき文字列を決定するメソッドです.
7
7
 
8
+ [公式](https://docs.python.org/ja/3/reference/datamodel.html#object.__str__)から抜粋すると
9
+
10
+ > オブジェクトの「非公式の (informal)」あるいは表示に適した文字列表現を計算するために、[str(object)](https://docs.python.org/ja/3/library/stdtypes.html#str)と組み込み関数[format()](https://docs.python.org/ja/3/library/functions.html#format),[print()](https://docs.python.org/ja/3/library/functions.html#print)によって呼ばれます。戻り値は[string](https://docs.python.org/ja/3/library/stdtypes.html#textseq)オブジェクトでなければなりません。
11
+ > [\_\_str__()](https://docs.python.org/ja/3/reference/datamodel.html#object.__str__)が有効な Python 表現を返すことが期待されないという点で、このメソッドは[object.\_\_repr__()](https://docs.python.org/ja/3/reference/datamodel.html#object.__repr__)とは異なります: より便利な、または簡潔な表現を使用することができます。
12
+ > 組み込み型 object によって定義されたデフォルト実装は、 object.\_\_repr__() を呼び出します。
13
+
8
14
  質問のコードでは`str(book)`が呼ばれたらタイトル`self.title`を返すようにしています.

1

fix answer

2022/10/24 07:46

投稿

ps_aux_grep
ps_aux_grep

スコア1579

test CHANGED
@@ -4,3 +4,5 @@
4
4
  print(book)
5
5
  ```
6
6
  のように書くと,`__str__()`なしではオブジェクト情報はid(例: `<__main__.Book object at 0x102d195e0>`)しか得られないのに対して,`__str__()`の中に書いた情報を`print`文で表示してくれます.正しくは`str(book)`としたときに返すべき文字列を決定するメソッドです.
7
+
8
+ 質問のコードでは`str(book)`が呼ばれたらタイトル`self.title`を返すようにしています.