我讀過方法的第一個參數是調用方法的實例。 我不明白爲什麼當我寫這篇文章Python在使用「self」時需要位置參數
class A:
def printName(self, name):
print(name)
A.printName("asd")
我得到這個錯誤類型錯誤:printName()失蹤1個人需要的位置參數:「名」。 我失蹤了什麼?
我讀過方法的第一個參數是調用方法的實例。 我不明白爲什麼當我寫這篇文章Python在使用「self」時需要位置參數
class A:
def printName(self, name):
print(name)
A.printName("asd")
我得到這個錯誤類型錯誤:printName()失蹤1個人需要的位置參數:「名」。 我失蹤了什麼?
這會工作,使用staticmethod
如果你想打電話printName()
而無需創建該類的實例
class A:
@staticmethod
def printName(name):
print(name)
A.printName('hello')
感謝您的回答。 你可以解釋什麼是在Python中的靜態方法,爲什麼它不需要'自我', 我試過你的代碼,它甚至沒有@staticmethod工程,爲什麼? 對不起,但我有很多麻煩理解如何工作'自我'的論點 – akerbeltz
@akerbeltz :) ** staticmethods **是綁定到類而不是它的對象的方法。他們不需要類實例'@ staticmethod'告訴我們正在使用'staticmethod'。在早期版本中,寫入** staticmethod **的語法不同。你可以只是谷歌獲取更多信息 – ksai
自己是'this'對象的等價物。 staticmethod不是針對不同的實例,而是綁定到一個類。 – gout
可能重複的[TypeError:缺少1所需的位置參數:'self'](https://stackoverflow.com/questions/17534345/typeerror-missing-1-required-positional-argument-self) –