Python 中的 super() 函式

Python 中的 super() 函式可以讓我們在子類別中繼承父類別的屬性和方法,而不需要明確地指定父類別。它是一個非常有用的工具,可以讓我們更容易地實現多重繼承。

super() 的基本用法

super() 函式的基本用法是在子類別中呼叫父類別的方法:

class Parent:
    def __init__(self):
        print("Parent class")

class Child(Parent):
    def __init__(self):
        super().__init__()
        print("Child class")

c = Child()
# Output: Parent class
#         Child class

在上面的程式碼中,我們定義了一個 Parent 類別和一個 Child 類別,Child 類別繼承自 Parent 類別。在 Child 類別的 init() 方法中,我們使用 super() 函式呼叫了 Parent 類別的 init() 方法,這樣就可以在 Child 類別中繼承 Parent 類別的屬性和方法。

super() 的更多用法

除了上面的基本用法之外,super() 函式還可以用於多重繼承的情況:

class Grandparent:
    def __init__(self):
        print("Grandparent class")

class Parent(Grandparent):
    def __init__(self):
        super().__init__()
        print("Parent class")

class Child(Parent):
    def __init__(self):
        super().__init__()
        print("Child class")

c = Child()
# Output: Grandparent class
#         Parent class
#         Child class

在上面的程式碼中,我們定義了一個 Grandparent 類別、一個 Parent 類別和一個 Child 類別,Child 類別繼承自 Parent 類別,而 Parent 類別又繼承自 Grandparent 類別。在 Child 類別的 init() 方法中,我們使用 super() 函式呼叫了 Parent 類別的 init() 方法,而 Parent 類別的 init() 方法又使用 super() 函式呼叫了 Grandparent 類別的 init() 方法,這樣就可以在 Child 類別中繼承 Grandparent 類別的屬性和方法。

總結

super() 函式是一個非常有用的工具,可以讓我們更容易地實現多重繼承。它可以讓我們在子類別中繼承父類別的屬性和方法,而不需要明確地指定父類別,也可以用於多重繼承的情況。

Categorized in:

Tagged in: