Python 错误之函数takes 0 positional arguments but 1 was given

class User():
    def __init__(self,fname,lname):
        self.fname=fname
        self.lname=lname

    def show_(self):
        print(self.fname.title()+self.lname.title())

users=User('harry ','potter')
users.show_()

以上代码创建一个名为User 的类,其中包含属性fname 和lname,在类User中定义一个名为show_()的方法,它用来打印用户信息。

运行程序会报错:show_() takes 0 positional arguments but 1 was given
意思是:show_()这个函数不需要参数,但是函数却被传递了一个参数,可是我们调用show_()函数的时候,并没有写参数,为什么会出现这样的Error呢?

这是因为“每个与类相关联的方法调用都自动传递实参self , 它是一个指向实例本身的引用”_init_中的参数self会自动传递给show_(),而show_()在定义的时候没有形参,就会报错。

修改方法:def show_():改为def show_(self):

你可能感兴趣的:(Python 错误之函数takes 0 positional arguments but 1 was given)