Python 调用对象方法报takes 0 positional arguments but 1 was given的解决办法

如下所示

class Cat:
    """这是一个对象-猫类"""
    def eat():
        print("猫吃鱼")
    def drink():
        print("猫喝水")


tom = Cat()
tom.drink()
tom.eat()

运行后提示如下:

TypeError: Cat.drink() takes 0 positional arguments but 1 was given

Python在类中定义方法的时候,方法会被传进一个参数,即当前对象的地址,所以一般在类中定义方法的时候,必须在方法中至少定义一个参数

class Cat:
    """这是一个对象-猫类"""
    def eat(self):
        print("猫吃鱼")
    def drink(self):
        print("猫喝水")


tom = Cat()
tom.drink()
tom.eat()

这样再运行就可以了

猫喝水
猫吃鱼
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐