Python 錯誤之函式takes 0 positional arguments but 1 was given

Avada__Kedavra發表於2017-10-20
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):

相關文章