首先,我知道这里已经有很多答案已经解决了这个问题,但我无法找到适合自己问题的答案。在尝试创建对象时,我基本上只是得到了这个错误。如果有任何答案,谢谢你的建议。
这是我的代码:
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)
答案 0 :(得分:3)
此错误的常见原因是 __ 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):