python 類和物件關係及物件建立過程

2021-10-23 10:18:57 字數 2064 閱讀 3874

python從設計之初就已經是一門物件導向的語言,正因為如此,在python中建立乙個類和物件是很容易的類(class): 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。 類由 類名 屬性 方法 構成

方法:類中定義的函式。

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

資料成員:類變數或者例項變數用於處理類及其例項物件的相關的資料。

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

區域性變數:定義在方法中的變數,只作用於當前例項的類。

例項變數:在類的宣告中,屬性是用變數來表示的,這種變數就稱為例項變數,例項變數就是乙個用 self 修飾的變數。

繼承:即乙個派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把乙個派生類的物件作為乙個基類物件對待。例如,有這樣乙個設計:乙個dog型別的物件派生自animal類,這是模擬"是乙個(is-a)"關係(例圖,dog是乙個animal)。

例項化:建立乙個類的例項,類的具體物件。

物件:通過類定義的資料結構例項。物件包括兩個資料成員(類變數和例項變數)和方法。

__init__方法

類有乙個名為init() 的特殊方法(構造方法),該方法在類例項化時會自動呼叫(類的物件被例項化後執行)

即初始化方法:

__new__方法

new方法在類物件建立時被呼叫 new方法需要傳入一給cls類 並且必須有返回值,返回乙個例項化物件,即後面的self。

new 通常用於控制生成乙個新例項的過程。它是類級別的方法。

new至少要有乙個引數cls,代表要例項化的類,此引數在例項化時由python直譯器自動提供

new必須要有返回值,返回例項化出來的例項,這點在自己實現new時要特別注意,可以return父類new出來的例項,

new方法主要是當你繼承一些不可變的class時(比如int, str, tuple), 提供給你乙個自定義這些類的例項化過程的途徑。還有就是實現自定義的metaclass。

具體我們可以用int來作為乙個例子:

假如我們需要乙個永遠都是正數的整數型別:

defnew(cls, value):

return super(positiveinteger, cls).new(cls, abs(value))

self

self代表類的例項,而非類

類的方法與普通的函式只有乙個特別的區別——它們必須有乙個額外的第乙個引數名稱, 按照慣例它的名稱是 self。

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

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

修改類屬性:

方法1:直接修改屬性的值

方法2:通過方法修改屬性的值

方法3:通過方法對屬性的值進行遞減/增

保護屬性和私有屬性:

_foo:以單下劃線開頭的表示protected(保護)型別的成員,只允許類本身和子類進行訪問,但在模板中直接定義的時候不允許通過from module import * 語句匯入,但是可以通過匯入整個模板進行匯入。

保護屬性主要作用與匯入階段,無法直接匯入此屬性,必須要將整個module匯入才能使用此屬性

類的三大特性–封裝 繼承 多型:

封裝:本質是將事物相關的屬性和方法封裝在乙個類裡面,我們呼叫類建立例項的時候,不用關心類內部的**細節

繼承:子類需要復用父類裡面的屬性或者方法,當然子類也可以提供自己的屬性和方法

注意 父類的私有屬效能被子類繼承 但是無法直接通過子類訪問,

可以通過在父類中定義訪問的方法來訪問

多型:同乙個方法不同物件呼叫同乙個方法功能的表現形式不一樣,例如:a、不同的兩個物件,字串的加法和整數的加法,同樣是加法,實現的功能是不一樣的

Python類和物件關係2

示例如下 1.類 屬性 姓名 量 持有的槍 法 安 彈 安彈夾拿槍 持有搶 開槍 2.彈類 屬性 殺傷 方法 傷害敵 讓敵 掉 3.彈夾類 屬性 容量 彈儲存的最 值 當前儲存的 彈 法 儲存 彈 安裝 彈的時候 彈出 彈 開槍的時候 4.槍類 屬性 彈夾 預設沒有彈夾,需要安裝 法 連線彈夾 儲存...

python類及物件

pass 程式塊為空使用 l 1,2,3 for i in range len l pass 一.類和物件 類 描述具有相同特徵的一類事物,是抽象的概念,不能執行具體的動作。比如 人類 類組成 屬性和方法 動作 組成 物件 是符合該類特性的實,也就是說是類的例項化,可以執行具體的動作。比如 學生 1...

類和物件的關係

類是具有相同資料結構 屬性 和相同操作功能 行為 物件的集合。物件就是符合某種類所產生的乙個例項。物件與類的關係是 物件的共性抽象為類,類的例項化就是物件。類是乙個抽象的概念,而物件是具體的,比如說車是乙個類的話,張三的那輛賓士車就是車這個類的乙個例項,動物是乙個類的話,李四的家養的那只貓就是動物類...