為什么這個腳本需要“self”作為第 3 行 mssg() 的參數?PyCharm 在第 3 行將“self”標記為,預期類型為“Another”,卻得到了“Main”。這個警告對我來說很有意義(盡管代碼有效)。當省略“self”時,Python 會拋出錯誤:類型錯誤:mssg() 缺少 1 個必需的位置參數:'self'class Main(): def __init__(self): print(Another.mssg(self))class Another(): def __init__(self): pass def mssg(self): return "Hello World"_foo = Main()根據您的指導,以下是防止 TypeError 的三種不同方法:class Main(): def __init__(self): print(Another.mssg('asdasdsa')) print(Another().mssg()) print(_bar.mssg())class Another(): def __init__(self): pass def mssg(self): return "Hello World"_bar = Another()_foo = Main()
1 回答

慕容708150
TA貢獻1831條經驗 獲得超4個贊
如果您使用Another.mssg(self)
,那么您正在調用一個類方法,這就是為什么self
將其作為參數,并且您需要僅使用一個參數來調用該函數。嘗試一下print(Another.mssg('asdasdsa'))
,你會發現它有效。
如果您的意圖是用作mssg(self)
實例方法,那么您應該使用調用它print(Another().mssg())
,這樣您就創建了實例,然后調用它的方法。
添加回答
舉報
0/150
提交
取消