各位大佬,这是在Python3中遇到的问题,两个类看起来一模一样,但是Cat这个类不报错,People这个类就报错,报错原因是TypeError: People() takes no arguments,各位大佬有什么解决的办法吗
常见错误:int__→__init
因为你把__init写成了__int__
你的int写错啦
是不是还有别的重名的也叫做 People 的东西
这个问题是由于类People
的构造函数中定义了self
参数,但是在实例化People
类时没有传递任何参数引起的。
class People:
def __init__():
pass
cat = Cat() # 这里不会报错
people = People() # 这里会报错
要解决这个问题,需要在People
类的构造函数中加上self
参数,以及其他需要的参数。self
参数在Python中表示对象本身,是必须的,所以构造函数至少要有一个参数(self
)。
class People:
def __init__(self):
pass
cat = Cat()
people = People() # 不会报错
请注意,如果你想给People
类添加其他参数,例如name
,你需要在构造函数的参数列表中进行定义,并在实例化时传递该参数。
class People:
def __init__(self, name):
self.name = name
cat = Cat()
people = People("John") # 不会报错,并且People实例对象的name属性为"John"
希望这能解决你的问题!如有其他疑问,请随时提问。