簡體   English   中英

TypeError:object()不帶參數-python

[英]TypeError: object () takes no parameters - python

我是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())

當我運行程序時,它給我一個錯誤,即對象沒有參數。 但是我已經在類的構造函數中描述了參數。 請幫忙。

確保正確地縮進了Animal的所有功能。 他們必須在Animal類中

就像其他人提到的那樣, __init__方法需要在Animal類中縮進,以使其被視為構造函數。

但是,執行此操作后要小心。 現在聲明__name__height__weight__sound方式是靜態類變量。 但是,在__init__ (通過在變量前面加上self. ),您將使用名稱變量名稱重新聲明實例變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM