如何在 Python 中建立類物件?


在 Python 中,類就像建立物件的藍圖。定義類後,就可以基於該類建立物件(也稱為例項)。以下是四種在 Python 中建立類物件的方法

建立類和例項

示例

在此示例中,我們使用 `class` 關鍵字定義了一個名為 `MyClass` 的類。然後,我們使用類名後跟括號 `()` 建立了該類的例項,名為 `obj`。這將建立一個空物件,它是該類的例項。

class MyClass:
    pass

obj = MyClass()
print(obj)

輸出

<__main__.MyClass instance at 0x7f1b31f44640> 

建立具有 `__init__()` 方法的類

示例

在此示例中,我們定義了一個名為 `MyClass` 的類,並帶有一個 `__init__()` 方法。當我們建立該類的例項時,將呼叫此方法。它使用作為引數傳遞的值初始化物件的屬性。

然後,我們建立了該類的例項,名為 `obj`,並傳遞了引數 `1` 和 `2`。這將建立一個具有屬性 `x=1` 和 `y=2` 的物件。

class MyClass:
    def __init__(self, x, y):
        self.x = x
        self.y = y

obj = MyClass(1, 2)
print(obj.x)
print(obj.y)

輸出

1
2

建立具有 `classmethod()` 的類

示例

類方法是一種特殊的函式,它屬於一個類,可以用來建立該類的新物件或修改現有物件。它就像建立或更改特定型別物件的配方。

假設我們有一個名為 Animal 的類,它有一個名為 species 的屬性。我們可以建立一個名為 make_sound 的類方法,該方法返回一個字串,表示該物種的動物發出的聲音。例如,狗可能會說“汪汪!”,而貓可能會說“喵喵!”。

class Animal:
    def __init__(self, species):
        self.species = species

    @classmethod
    def make_sound(cls, species):
        if species == "dog":
            return "Woof woof!"
        elif species == "cat":
            return "Meow!"
        else:
            return "I don't know what sound that animal makes."

dog = Animal("dog")

print(dog.make_sound("dog"))   
cat = Animal("cat")
print(cat.make_sound("cat"))   
bird = Animal("bird")
print(bird.make_sound("bird")) 

輸出

Woof woof!
Meow!
I don't know what sound that animal makes.

建立現有類的子類

示例 1

在此示例中,我們定義了一個名為 `ParentClass` 的類。然後,我們使用語法 `class ChildClass(ParentClass):` 定義了 `ParentClass` 的子類,名為 `ChildClass`。這將建立 `ParentClass` 的一個子類,該子類繼承其所有屬性和方法。

然後,我們使用類名後跟括號 `()` 建立了 `ChildClass` 的例項,名為 `obj`。這將建立一個空物件,它是 `ChildClass` 的例項,進而繼承了 `ParentClass` 的所有屬性和方法。

class ParentClass:
    pass

class ChildClass(ParentClass):
    pass

obj = ChildClass()
print(obj)

輸出

<__main__.ChildClass object at 0x7fb710464ee0>

示例 2

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def introduce(self):
        print(f"My name is {self.name} and I am {self.age} years old.")

# creating an object of Person class
person1 = Person("Alice", 25)

# calling the introduce method of Person class object
person1.introduce()

輸出

My name is Alice and I am 25 years old.

在此示例中,我們定義了一個 Person 類,它有兩個例項變數 name 和 age,以及一個 introduce 方法,該方法列印該人的姓名和年齡。然後,我們透過呼叫其建構函式並傳遞引數“Alice”和 25 建立了 Person 類的物件 person1。最後,我們呼叫了 person1 物件的 introduce 方法,該方法列印了該人的姓名和年齡。

示例 3

在此示例中,我們定義了一個 Car 類,它有三個例項變數 make、model 和 year,以及一個 get_info 方法,該方法返回一個格式化的字串,其中包含汽車的年份、製造商和型號。然後,我們透過呼叫其建構函式並傳遞引數“Toyota”、“Corolla”和 2022 建立了 Car 類的物件 car1。最後,我們呼叫了 car1 物件的 get_info 方法,該方法返回一個包含有關汽車資訊的字串,並使用 print 函式列印它。

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def get_info(self):
        return f"{self.year} {self.make} {self.model}"

# creating an object of Car class
car1 = Car("Toyota", "Corolla", 2022)

# calling the get_info method of Car class object
print(car1.get_info())

輸出

2022 Toyota Corolla

更新於:2023年5月18日

1K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.