TypeError: xxx takes 0 positional arguments but 1 was given

class Demo:
    def show():
        print('show')
        
if __name__ == '__main__':
   demo = Demo()
   demo.show()

在类中定义一个简单的方法并在main函数中调用,但是报错:

TypeError: show() takes 0 positional arguments but 1 was given

意思是show()函数是一个无参的函数但是我们调用时却给了它一个参数。

其实是因为类在调用它的方法时都会传递一个类的实例,类似于java中的this,所以我们在定义类的方法时,至少需要加上一个形参.

class Demo:
    #不一定要叫self,也可以叫this,随便起
    def show(self):
        print('show')
        
if __name__ == '__main__':
   demo = Demo()
   demo.show()

你可能感兴趣的:(python基础)