首頁 > 後端開發 > Python教學 > 為什麼我的 Python 方法顯示「類型錯誤:method() 需要 1 個位置參數,但給了 2 個」?

為什麼我的 Python 方法顯示「類型錯誤:method() 需要 1 個位置參數,但給了 2 個」?

Susan Sarandon
發布: 2024-12-13 15:27:10
原創
516 人瀏覽過

Why Does My Python Method Show

理解神秘的「Method Takes 1 Argument But 2 Give」錯誤

嘗試在Python 中呼叫方法時,開發人員可能會遇到令人困惑的錯誤訊息「TypeError」 : method() 需要1 個位置參數,但給了2 個。 「這個錯誤可能會令人費解,特別是當只有一個參數傳遞給方法時。

在幕後,Python 將方法呼叫解釋為:

class_name.method(object, argument)
登入後複製

這是一種允許方法的機制毫不費力地處理他們正在作用的物件。 self,它指的是物件實例。 >

這解釋了為什麼該方法需要兩個參數,儘管只明確傳遞了一個參數caller.

class MyClass:
    def method(self, arg):
        print(self)
        print(arg)

my_object = MyClass()
my_object.method("foo")
登入後複製
為了緩解這種混亂,開發人員可以在不需要訪問其綁定在物件的方法上使用staticmethod() 裝飾器。參數的需要:

MyClass.method(my_object, "foo")
登入後複製
總之,當遇到「Method Takes 1 Argument But 2 Give」錯誤時,請記住在Python中,方法通常會接收一個附加的隱式參數,這是它們關聯的物件。

以上是為什麼我的 Python 方法顯示「類型錯誤:method() 需要 1 個位置參數,但給了 2 個」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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