我在Python中遇到了很奇怪的问题

各位大佬,这是在Python3中遇到的问题,两个类看起来一模一样,但是Cat这个类不报错,People这个类就报错,报错原因是TypeError: People() takes no arguments,各位大佬有什么解决的办法吗

img

img

常见错误: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"

希望这能解决你的问题!如有其他疑问,请随时提问。