なぜPythonの次のコードが機能するのか教えてもらえますか？

クラス動物：
    def __init __（self、name、type）：
        self.name = name
        self.tipo = type

    def Greeting_animal（）：
        print（f'hola {self.name} '）

mi_animal = animal（ 'zeus'、 'dog'）
mi_animal.saludar_animal（）
提供したPythonコードは、いくつかの理由で機能しません。

1.動物クラスの「Greeting_animal（）メソッド」には、その定義に「自己」パラメーターがありません。つまり、init関数で定義された「名前」および「タイプ」インスタンス変数にアクセスできません。行う必要がある最初の修正は、「Greeting_animal（）」メソッドの最初の引数として「自己」パラメーターを追加することです。

2. print（）コールのフォーマットチェーンは、関数ではなくinitメソッドで定義されていないインスタンス変数「名前」を指すため、「greeting_animal（）」メソッドにもエラーがあります。これを解決するには、以下に示すように、ポイント表記を使用して属性「名前」にアクセスするには、print（）関数への呼び出しを変更する必要があります。

クラス動物：
    def __init __（self、name、type）：
        self.name = name
        self.tipo = type

    def Greeting_animal（self）：
        print（f'hola {self.name} '）

mi_animal = animal（ 'zeus'、 'dog'）
mi_animal.saludar_animal（）

これらの修正を行った後、コードは適切に機能し、実行されると「Hi Zeus」出力が生成されます。