標籤:建立 instance 類的屬性 衍生類別 定義 需要 子類 .class employee
python類繼承與重構0 對象
- 通過類定義的資料結構執行個體。
- 對象包括兩個資料成員(類變數和執行個體變數)和方法。
#!/usr/bin/python# -*- coding: UTF-8 -*- class Employee: ‘所有員工的基類‘ empCount = 0 def __init__(self, name, salary): self.name = name self.salary = salary Employee.empCount += 1 def displayCount(self): print "Total Employee %d" % Employee.empCount def displayEmployee(self): print "Name : ", self.name, ", Salary: ", self.salary
- empCount 變數是一個類變數,它的值將在這個類的所有執行個體之間共用。你可以在內部類或外部類使用 Employee.empCount 訪問。
- 第一種方法__init__()方法是一種特殊的方法,被稱為類的建構函式或初始化方法,當建立了這個類的執行個體時就會調用該方法
- self 代表類的執行個體,self 在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數
self代表類的執行個體,而非類
- 類的方法與普通的函數只有一個特別的區別——它們必須有一個額外的第一個參數名稱, 按照慣例它的名稱是 self。
class Test: def prt(self): print(self) print(self.__class__) t = Test()t.prt()
以上執行個體執行結果為:
<__main__.Test instance at 0x10d066878>__main__.Test
類的繼承
- 在繼承中基類的構造(init()方法)不會被自動調用,它需要在其衍生類別的構造中親自專門調用。
- 在調用基類的方法時,需要加上基類的類名首碼,且需要帶上self參數變數。區別在於類中調用普通函數時並不需要帶上self參數
- Python總是首先尋找對應類型的方法,如果它不能在衍生類別中找到對應的方法,它才開始到基類中逐個尋找。(先在本類中尋找調用的方法,找不到才去基類中找)。
1 方法重寫
- 如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。
python類繼承與重構