首頁 >後端開發 >Python教學 >為什麼我的 Python 程式碼會拋出「TypeError: Missing 1 required Positional Argument: 'self'」?

為什麼我的 Python 程式碼會拋出「TypeError: Missing 1 required Positional Argument: 'self'」?

DDD
DDD原創
2024-12-14 19:59:14408瀏覽

Why Does My Python Code Throw a

為什麼會出現TypeError: Missing 1 required Positional Argument: 'self'

在Python 中,在處理時,可能會遇到到異常呼叫類別方法時。具體錯誤訊息「TypeError: Missing 1 requiredpositional argument: 'self'」表示在呼叫該方法之前沒有正確呼叫建構方法來建立類別的實例。

理解目的'self'

'self' 是一個特殊變量,它會自動作為第一個參數傳遞給所有類別方法(包括建構子)。它代表類別的實例,並提供對其屬性和方法的存取。

建構子呼叫

必須呼叫建構子 (__init__) 方法來初始化類別實例。要呼叫它,需要透過使用 ClassName() 語法建立物件來實例化該類別。這會將 self 參數指派給實例並初始化其屬性和行為。

清晰範例

考慮以下程式碼片段:

class Pump:
    def __init__(self):
        print("init")

    def getPumps(self):
        pass

p = Pump.getPumps()  # Error: TypeError: getPumps() missing 1 required positional argument: 'self'
print(p)

在此程式碼中,在呼叫getPumps() 之前不會呼叫建構函式(__init__)。因此,沒有創建 Pump 類別的實例,並且缺少 self 參數,從而導致錯誤。

解決方案

要解決此問題,必須先建立 Pump 類別的實例,然後呼叫該實例的 getPumps() 方法。正確的程式碼是:

p = Pump()
p.getPumps()
print(p)

先建立實例,正確分配 self 參數,並且可以成功呼叫 getPumps() 方法。

以上是為什麼我的 Python 程式碼會拋出「TypeError: Missing 1 required Positional Argument: 'self'」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn