Python 中的 self 關鍵字

Muhammad Waiz Khan 2021年2月28日
Python 中的 self 關鍵字

本教程將講解 Python 中 self 關鍵字的用途和用法。在物件導向程式設計中,我們有類,每個類都有各種屬性和方法。每當建立一個類的物件或例項時,都會呼叫建構函式(Python 中的 __init__() 方法)來初始化例項的屬性。

在建立一個類的例項時,我們需要將例項的屬性與引數和其他變數區分開來或指定。而這時我們就需要用 self 關鍵字來指定我們要把值傳遞給例項屬性,而不是傳遞給本地的同名變數或引數。

假設,對於 car 類,我們將引數 color 傳遞給 __init__() 方法來初始化 car 類的 color 屬性,我們會將例項的 color 屬性指定為 self.color,這說明 car 類有一個屬性 color,我們將值傳遞給該屬性。

同樣,我們也可以使用 self 關鍵字呼叫類的例項方法,比如 car 類的 self.start() 方法。所以簡而言之,我們可以說 self 關鍵字允許使用者指定和訪問類的例項的屬性和方法。

Python 中 self 關鍵字的使用和示例程式碼

現在,讓我們通過示例程式碼來看看 Python 中如何使用 self 關鍵字來指定一個例項的方法和屬性。

下面給出的第一段示例程式碼演示了在 __init__() 方法中如何使用 self 關鍵字來初始化被初始化的例項的屬性。我們不需要在初始化之前宣告或建立變數,也不需要給變數賦值,這樣我們就可以用下面的方式初始化例項的屬性。

class car:
    def __init__(self, model, color):

        self.model = model
        self.color = color


mycar = car("model XYZ", "red")
print(mycar.model)
print(mycar.color)

輸出:

model XYZ
red

如上所示,在建立一個新的類的例項時,會自動呼叫 __init__() 方法,它的屬性會被初始化。self 需要作為該方法的引數來訪問例項的方法和屬性。

下面的示例程式碼演示瞭如何在 Python 中使用 self 關鍵字來呼叫其他類方法中的例項/類方法。

class car:
    def __init__(self, model, color):

        self.model = model
        self.color = color

        self.start()

    def start(self):

        print(self.model + ", has started!")


mycar = car("model XYZ", "red")

輸出:

model XYZ, has started!

和上面的示例程式碼一樣,我們可以使用 self 關鍵字來呼叫類方法,並通過傳遞類的例項作為 self 引數來訪問任何類方法中的屬性。

相關文章 - Python Keyword