TypeError:object()在创建对象时不带参数

时间:2017-07-22 04:15:16

标签: python python-3.x syntax indentation

首先,我知道这里已经有很多答案已经解决了这个问题,但我无法找到适合自己问题的答案。在尝试创建对象时,我基本上只是得到了这个错误。如果有任何答案,谢谢你的建议。

这是我的代码:

class Human:
    __name = None
    __height = 0

def __init__(self, name, height):
    self.__name = name
    self.__height = height

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 self.__height

def get_type(self):
    print('Human')

def toString(self):
    return '{} is {} cm tall.'.format(self.__name,
                                      self.__height)

person = Human('Corey', 180)

2 个答案:

答案 0 :(得分:3)

最常见原因:拼写错误__init __()

此错误的常见原因是 __ init __()方法拼写错误,通常会忘记两个前导或尾随下划线之一:

>>> class A:
        def __init_(self, x, y):
            self.x = x
            self.y = y

>>> A(10, 20)
Traceback (most recent call last):
  File "<pyshell#33>", line 1, in <module>
    A(10, 20)
TypeError: object() takes no parameters

不太常见的原因:错误定型

另一个原因是错误缩进,其中 __ init __()方法没有缩进到类定义中:

>>> class B:
        """Example class"""

>>> def __init__(self, p, q):
        self.p = p
        self.q = q

>>> B(30, 40)
Traceback (most recent call last):
  File "<pyshell#41>", line 1, in <module>
    B(30, 40)
TypeError: object() takes no parameters

答案 1 :(得分:-1)

您的班级声明必须是

class Human(object):