Python 物件導向

2021-10-01 10:28:44 字數 2770 閱讀 5054

類:

類變數:定義在類中且在函式體之外。在整個例項化物件中是公用的。不作為例項變數使用

資料成員:

方法重寫:

例項變數:定義在方法中的變數,只作用於self當前例項的類,也就是函式內部定義的變數。

繼承:

例項化:

方法:類中定義的函式

物件:物件包括兩個資料成員(類變數和例項變數)

建立類

class employee:

'基類'

empcount=0 #類變數,類中所有的函式都可以訪問

def __init__(self ,name,salary): #self當前例項

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

self代表類的例項self在定義類的方法時是必須有的,雖然在呼叫的時不必傳入相應的引數。

類的方法與普通函式只有乙個特別的區別?

他們必須有乙個額外的第乙個引數 名稱self。self代表的是類的例項,代表當前物件的位址,而self.class 則指向類。self不是關鍵字,可以換成任意其他的

建立例項物件

「建立employee類的第乙個物件」

emp1=employee("zara",2000) #emp1=employee() 類的例項化,emp1即稱為物件

「建立employee類的第二個物件」

emp2=employee("maani",4000) # 每次建立類的例項都會呼叫__init__ 函式

訪問屬性

emp1.displayemployee()  #通過點號 . 來訪問物件的屬性

employee.empcount #通過類名訪問 類變數

empcount變數是類變數,他的值在這個類的所有例項之間共享。

可以在類內或者類外通過employee.empcount訪問

新增,刪除和修改類的屬性

**僅針對於建立的物件,並不影響其對應的類**

emp1.age=7 #新增類的屬性age

emp1.age=8 #修改類的age屬性

del emp1.age #刪除age屬性

也可以使用函式的方式來訪問屬性

getattr(obj ,name)

hasattr(obj,name) 檢查是否存在乙個屬性

setattr(obj,name ,value)

delattr(obj,name)

建構函式

方法__int__()被稱為建構函式或初始化方法,當建立這個類的例項時就會呼叫該方法。

析構函式

析構函式 __del __ ,在物件銷毀時被呼叫,

def __del__(self):

class_name=self.__class__.__name__

print class_name, "銷毀"

python內建類屬性

__dict__           #包括類的所有屬性組成

__doc__

__name__

__module__

__bases__

類中的變數:單下劃線,雙下劃線,頭尾雙下劃線說明

__ foo__ :定義的是特殊方法,一般是系統定義的名字,類似 __init __

_foo :是protected型別的變數只允許其本身與子類進行訪問,不能用於form module imort *

__foo :表示private私有變數,只允許這個類本身進行訪問。

繼承語法

class  派生類名 (基類名):

#如果基類名為多個,則為多重繼承

繼承的特點:

在繼承中基類的建構函式不會被自動呼叫,它需要在其派生類的建構函式中親自專門呼叫。

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

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

使用issubclass()檢查乙個類是否是另乙個類的子類;isinstance(obj,class)檢查obj是否是class或者class子類的例項

重寫: 後續補充

python物件導向學習 python物件導向學習

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...

python物件導向總結 Python物件導向總結

python 物件導向 oop 1 物件導向 是乙個更大封裝,把乙個物件封裝多個方法 2 類 是對一些具有相同特徵或行為的事物的乙個統稱,是抽象的,不能直接使用 特徵被稱為屬性 行為被稱為方法 3 物件 是由類建立出來的乙個具體的存在,可以直接使用 先有類再有物件,類只有乙個,而物件可以有多個 類中...

python登入物件導向 python 物件導向

一 屬性和方法 1.a a 例項屬性 通過例項物件來新增的屬性就是例項屬性 a.count 10 例項方法都是在類中直接定義的 以self為第乙個引數的方法都是例項方法 當通過例項物件呼叫時,會自動傳遞當前物件作為self傳入 當通過類物件呼叫時,不會自動傳遞self a.test 等價於 a.te...