首頁 > 後端開發 > Python教學 > 為什麼即使有一個明確參數也會出現「TypeError: method()takes 1positional argument but 2 were given 2」?

為什麼即使有一個明確參數也會出現「TypeError: method()takes 1positional argument but 2 were given 2」?

Mary-Kate Olsen
發布: 2024-12-30 13:25:10
原創
579 人瀏覽過

Why Does

“TypeError:method() 需要1 個位置參數,但給出了2 個位置參數”,僅傳遞了一個參數

遇到錯誤「TypeError」時: method() 需要1 個位置參數,但給了 2個」儘管只傳遞了一個參數,但理解Python 的方法呼叫很重要約定。

在Python 中,方法呼叫是更詳細語法的語法糖。當呼叫物件上的方法時,語言會將呼叫轉換為更明確的形式,其中物件成為方法的第一個參數。在幕後翻譯成:

這裡,第一個參數(my_object)在方法定義中被稱為self 參數。大多數情況下,方法需要存取它們所呼叫的物件。 staticmethod() 函數來修飾方法:
my_object.method("foo")
登入後複製

用staticmethod() 修飾方法就不需要self 參數,可以直接呼叫方法而無需引用物件:
MyClass.method(my_object, "foo")
登入後複製

這澄清了為什麼您遇到的錯誤表明提供了兩個參數。 my_object)解釋為隱式第一個參數,從而導致總共傳遞兩個參數。

以上是為什麼即使有一個明確參數也會出現「TypeError: method()takes 1positional argument but 2 were given 2」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板