回答編集履歴
3
すこしだけ補足
    
        answer	
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            まずPythonのオブジェクトが`print`に渡されたときに、そのオブジェクトの`__str__`メソッドが呼ばれます。
         | 
| 2 2 | 
             
            `__str__`が存在しない場合は`__repr__`メソッドが呼ばれます。
         | 
| 3 | 
            -
            `__repr__`メソッドは、Pythonでそのオブジェクトを表現可能な文字列を返すためのメソッドです。
         | 
| 3 | 
            +
            `__repr__`メソッドは、Pythonでそのオブジェクトを表現可能なPython式の文字列を返すためのメソッドです。
         | 
| 4 4 |  | 
| 5 5 | 
             
            > これはなぜでしょうか?
         | 
| 6 6 |  | 
2
クラス→オブジェクト
    
        answer	
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            まずPythonのオブジェクトが`print`に渡されたときに、そのク | 
| 1 | 
            +
            まずPythonのオブジェクトが`print`に渡されたときに、そのオブジェクトの`__str__`メソッドが呼ばれます。
         | 
| 2 2 | 
             
            `__str__`が存在しない場合は`__repr__`メソッドが呼ばれます。
         | 
| 3 3 | 
             
            `__repr__`メソッドは、Pythonでそのオブジェクトを表現可能な文字列を返すためのメソッドです。
         | 
| 4 4 |  | 
1
追記
    
        answer	
    CHANGED
    
    | @@ -1,3 +1,7 @@ | |
| 1 | 
            +
            まずPythonのオブジェクトが`print`に渡されたときに、そのクラスの`__str__`メソッドが呼ばれます。
         | 
| 2 | 
            +
            `__str__`が存在しない場合は`__repr__`メソッドが呼ばれます。
         | 
| 3 | 
            +
            `__repr__`メソッドは、Pythonでそのオブジェクトを表現可能な文字列を返すためのメソッドです。
         | 
| 4 | 
            +
             | 
| 1 5 | 
             
            > これはなぜでしょうか?
         | 
| 2 6 |  | 
| 3 7 | 
             
            `byte`クラスの`__str__`と`__repr__`メソッドが**ASCIIで表現できるコードはASCIIで表現する**といった仕様になっているためです。
         | 
