python類的繼承重構 python類繼承與重構

2021-10-11 09:39:52 字數 1413 閱讀 9345

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

從執行結果可以很明顯的看出,self 代表的是類的例項,代表當前物件的位址,而 self.class 則指向類。

self 不是 python 關鍵字,我們把他換成 runoob 也是可以正常執行的:

你可以新增,刪除,修改類的屬性。

類的繼承

在python中繼承中的一些特點:

在繼承中基類的構造(init()方法)不會被自動呼叫,它需要在其派生類的構造中親自專門呼叫。

在呼叫基類的方法時,需要加上基類的類名字首,且需要帶上self引數變數。區別在於類中呼叫普通函式時並不需要帶上self引數

python總是首先查詢對應型別的方法,如果它不能在派生類中找到對應的方法,它才開始到基類中逐個查詢。(先在本類中查詢呼叫的方法,找不到才去基類中找)。

1 方法重寫

如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。

類的繼承重難點

繼承許可權 不同的繼承方式會影響基類成員在派生類中的訪問許可權。public繼承方式 基類中所有 public 成員在派生類中為 public 屬性 基類中所有 protected 成員在派生類中為 protected 屬性 基類中所有 private 成員在派生類中不能使用。protected繼承...

python類繼承與重構

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 disp...

2 python 繼承 重寫父類的方法

定義父類 class a 定義父類的構造方法 def init self self.a aaaa 定義父類的公有方法public def public selfs print publi method of a 定義子類b,繼承了父類a class b a 定義子類的構造方法 def init se...