python错误 __str__() Takes 0 positional arguments but 1 was given

# -*- coding:gb2312 -*-
class car:
    # 属性
    
    # 方法
    def __str__():
        print("哈哈哈哈哈哈啊哈")
    
    def move():
        print("车在移动。")
    def Whistle():
        print("车载鸣笛。")

BMW = car()

print(BMW)

提示错误:

clipboard.png

google翻译了一下,说是取0个位置参数,但给出1
不太理解这个什么意思。

阅读 9.5k
1 个回答

class里面定义的函数, 都需要提供一个self的位置参数, 因为在类实例化时, 会传入实例对象, 进而和函数进行绑定, 所以代码应该调整为:

# -*- coding:gb2312 -*-
class car:
    # 属性

    # 方法
    def __str__(self):
        return ("哈哈哈哈哈哈啊哈")

    def move(self):
        print("车在移动。")

    def Whistle(self):
        print("车载鸣笛。")


BMW = car()

print(BMW)

对于 methodfunction的关系可以参考我的文章: Python: 函数与方法的区别

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏