私はPythonには新しく、クラスとオブジェクトを持つプログラムを作成しようとしています。以下は私のコードです:TypeError:object()はパラメータをとりません - python
class Animal:
__name = ""
__height = 0
__weight = 0
__sound = 0
# define a constructor and pass arguments
def __init__(self, name, height, weight, sound):
self.__name = name
self.__height = height
self.__weight = weight
self.__sound = sound
# set and get functions for name
def set_name(self, name):
self.__name = name
def get_name(self):
return self.__name
# set and get functions for height
def set_height(self, height):
self.__height = height
def get_height(self):
return str(self.__height)
# set and get functions for weight
def set_weight(self, weight):
self.__weight = weight
def get_weight(self):
return str(self.__weight)
# set and get functions for sound
def set_sound(self, sound):
self.__sound = sound
def get_sound(self):
return self.__sound
def get_type(self):
print("Animal")
def toString(self):
return "{} is {} cm tall and {} kg and say {}".format(self.__name, self.__height, self.__weight, self.__sound)
# create an object call cat of type Animal
cat = Animal('Whiskers', 33, 10, 'Meow')
print(cat.toString())
プログラムを実行すると、オブジェクトにパラメータがないというエラーが表示されます。クラスのコンストラクタにパラメータを記述しました。助けてください。
ここに投稿した方法でコードをインデントしましたか?もしそうなら、あなたの問題です。 – dsh
...もしそうなら、 '__init __()'はメソッドではありませんが、単純な関数と 'Animal'はオブジェクトから' __init __() 'を継承します。 – dhke
小さいものから始めましょう。あなたのエラーのコンストラクタ以上の理由はありません。それに加えて、PythonはJavaではありません。 Javaで 'toString'をオーバーライドすることは、Pythonで' __str__'を実装するのと同じです –