使用類別在Python中定義新的物件

除了使用Python提供的型別外,我們可以宣告自己的類別並從類別實例化物件。

一個物件是一個類別的實例。

類別是一個物件的型別。

以這種方式定義一個類別:

class <類別名稱>:
 # 我的類別

例如,讓我們定義一個狗(Dog)類別:

class Dog:
 # 狗類別

類別可以定義方法:

class Dog:
 # 狗類別
 def bark(self):
     print('WOF!')

self作為方法的參數指向當前物件實例,在定義方法時必須指定。

我們可以使用以下語法來創建一個類別的實例,即一個物件

roger = Dog()

現在roger是一個新的Dog型別的物件。

如果執行以下程式碼:

print(type(roger))

你會得到<class '__main__.Dog'>

一種特殊類型的方法__init__()被稱為建構子,我們可以在從該類別創建一個新物件時使用它來初始化一個或多個屬性:

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

    def bark(self):
        print('WOF!')

我們可以這樣使用它:

roger = Dog('Roger', 8)
print(roger.name)  # 'Roger'
print(roger.age)  # 8

roger.bark()  # 'WOF!'

類別的一個重要功能是繼承。

我們可以創建一個動物(Animal)類別,其中包含一個名為walk()的方法:

class Animal:
    def walk(self):
        print('Walking..')

狗(Dog)類別可以繼承自動物(Animal):

class Dog(Animal):
    def bark(self):
        print('WOF!')

現在創建一個狗(Dog)類別的新物件將具有walk()方法,因為它是從動物(Animal)類別繼承的:

roger = Dog()
roger.walk()  # 'Walking..'
roger.bark()  # 'WOF!'