Python 類

  1. 物件導向程式設計介紹
  2. Python 類和物件
  3. Python 類構造方法
  4. 刪除類的屬性

我們將在本節中討論 Python 物件導向程式設計(OOP)的基礎知識,比如類、物件等。

Python 是一種物件導向的程式設計,換句話說,Python 中的所有的東西都是一個物件。

物件導向程式設計介紹

物件導向程式設計(OOP)的基礎包括以下術語,以後我們會經常在學習和使用中提到

  1. 資料成員
  2. 方法
  3. 物件
  4. 建構函式
  5. 方法過載
  6. 運算子過載
  7. 繼承
  8. 類例項和例項化

Python 類和物件

類可以被認為是物件的輪廓,而物件是資料成員和成員函式的集合。類包含可以使用該類的物件來訪問的資料成員(變數)和成員函式(方法)。

新建一個類

可以使用 class 關鍵字以及後面加類的名字來新建一個類。語法如下,

class NameofClass:
    #data members of the class
    #member functions of the class

舉例如下,

>>> class Waiter:
	name = "Andrew"
	def display():
		print('Waiter Class')	
>>> print(Waiter.display)
<function Waiter.display at 0x0359E270>
>>> print(Waiter.name)
Andrew

在上例中,新建了一個名叫 Waiter 的類,它包含了一個成員變數 name 以及一個成員方法 display()

新建一個類的物件例項

你可以通過下面的語句來新建一個類的物件示例,

obj = className()

舉個例子,

>>> w = Waiter()
>>> print(w.name)
Andrew
>>> w.display()
Waiter Class

你可以看到,Waiter 類的物件例項可以通過點運算子 . 來訪問類的成員(屬性)。

類屬性

除了資料成員和成員函式之外,類還有一些 Python 的內建屬性。

  1. __dict__:包含類的名稱空間的字典。
  2. __doc__:類的文件說明
  3. __name__:類的名稱
  4. __module__: 定義類的所在模組
  5. __bases__: 包含基礎類的元組

這些屬性可以通過 . 來訪問。

舉例說明一下,

>>> class Waiter:
	"This is a waiter class"
	name="Andrew"
	def display():
		print("You are in waiter class")
>>> w = Waiter()

>>> print(w.__doc__)
This is a waiter class

>>> print(w.__dict__)
{}

>>> print(w.__module__)
__main__

Python 類構造方法

Python 類可以通過 __init__() 方法來進行構造,這個內建的方法是當對應類的物件被新建時被自動呼叫的特殊方法。構造方法基本上是用來初始化類的成員資料。

>>> class Waiter:
        def __init__(self, n):
            self.name=n
            self.age=20
        def display(self):
            print(self.name)

>>> w=Waiter('Rob')
>>> w.display()
Rob

上例中,self 引數會在構造方法定義以及其他類方法中使用。你可以這樣來看待,當你呼叫 w.display() 方法時,它會被解釋為 Waiter.display(w)

刪除類的屬性

你可以通過 del 來刪除類物件例項中的屬性。

>>> w=Waiter('Rob')
>>> w.__dict__
{'name': 'Rob', 'age': 20}
>>> del w.age
>>> w.__dict__
{'name': 'Rob'}