0
import random
import sys
import os
class Animal :
__name=""
__height=0
__weight=0
__sound=0
def __init__(self, name, height, weight, sound):
self.__name=name
self.__height=height
self.__weight=weight
self.__sound=sound
def set_name(self,name):
self.__name =name
def get_name(self):
return self.__name
def set_height(self,height):
self.__height =height
def get_height(self):
return str(self.__height)
def set_weight(self,weight):
self.__weight =weight
def get_weight(self):
return str(self.__weight)
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 {} kilograms and say{}".format(self.__name, self.__height,self.__weight,self.__sound)
cat = Animal('ruby',33,10,'meow')
print(cat.toString())
エラーメッセージ:このコンストラクタは引数を取りません:pythonの
Traceback (most recent call last):
File "python", line 37, in <module>
TypeError: this constructor takes no arguments
あなたのソースファイルのようなものですか?あなたが関数をインデントしていない場合は、グローバル関数を作成しているだけで、クラス関数ではありません。 – Carpetsmoker
@MikeMüllerこのような場合は、Pythonファイルのインデントを編集しないでください。あなたの編集が問題の原因を隠すかもしれないまともな変更があります。インデントを修正するだけで、これは問題ではないと完全に確信しています。 – Carpetsmoker
@rakesh:パラメータを渡すときではなく、常に変数割り当てに '='の前後にスペースを入れてください。これはPEP8と呼ばれる標準に従います –