Python學習筆記七

2022-09-03 22:57:25 字數 2110 閱讀 4583

物件導向程式設計

物件導向的特性如下:

類:具有相同屬性和方法的一類事物,成為類。

物件:類的例項化後的結果,乙個類可以例項化多個物件,每個物件也可以不同的屬性。

封裝:在類中對資料的賦值,類裡面包含著類的資料和方法。

繼承:乙個類可以派生出子類,在父類定義的屬性方法自動被子類繼承。

多型:乙個類可以有多個子類,每個子類繼承父類的屬性和方法,但是對父類的方法做了不同的實現,這就是同乙個事物表現出不同的形態。

例子:

#

定義類class

dog:

name='

egon'#

靜態屬性

def bule(self): #

定義乙個方法

print("

%s 汪汪汪

" %dog.name)

f=dog() #

把這個類例項化,相當於建立了乙個物件

f.bule() #

呼叫類中的方法

結果:

例項化呼叫類的時候,會在記憶體中開啟乙個空的空間,類會把傳入的引數

__init__函式

名稱:建構函式

作用:類的例項初始化

類變數作用:大家共用的屬性,節省開銷。

析構函式:在例項釋放和銷毀的時候,執行析構函式,通常做一些掃尾工作。

def __del__(self):

私有方法

在方法前面加__

私有屬性

在屬性前面加__

繼承先寫乙個父類:

例子:

class

animal(object):

def__init__

(self,name,age):

self.name=name

self.age=age

class

person(animal):

def__init__

(self,name,age,aggr):

animal.

__init__

(self,name,age)

self.aggr=aggr

class

dog(animal):

def__init__

(self, name, age, aggr):

animal.

__init__

(self,name,age)

self.aggr =aggr

egg=dog('

egon

',18,'

bbbb')

print(egg.name)

多繼承:

經典類:

class

jiaoshi:

def__init__

(self,name,age):

self.name=name

self.age=age

class

jiaoshou(jiaoshi):

def__init__

(self,name,age,xingwei):

jiaoshi.

__init__

(self,name,age) #經典類的寫法

self.xingwei=xingwei

b=jiaoshou('

yangjianbo

',18,'

sleep

')

新式類:

class

jiaoshi(object):

def__init__

(self,name,age):

self.name=name

self.age=age

class

jiaoshou(jiaoshi):

def__init__

(self,name,age,xingwei):

super(jiaoshou,self).

__init__

(name,age) #新式類的寫法

b=jiaoshou('

yangjianbo

',18,'

sleep

')

Python學習筆記(七)

深淺拷貝 set 集合 函式a 1,2 3,4 b a.copy print b 結果 1,2 3,4 b 0 0 8 print a 結果 8,2 3,4 print b 結果 8,2 3,4 原理圖 去重關係測試 定義語法 s set in not in 集合等價與不等價 子集 s set al...

python學習筆記(七)

帶有 yield 關鍵字的的函式在 python 中被稱之為 generator 生成器 python 直譯器會將帶有 yield 關鍵字的函式視為乙個 generator 來處理。乙個函式或者子程式都只能 return 一次,但是乙個生成器能暫停執行並返回乙個中間的結果 這就是 yield 語句的...

Python 基礎學習筆記 七

python在設計上堅持了清晰劃一的風格,這使得python成為一門易讀 易維護,並且被大量使用者所歡迎的 用途廣泛的語言。接下來,記錄一些本人自主學習python的一些筆記 比較 相等性和真值 測試值得相等性 is 測試物件的一致性 a 1,1,2,3 b 1,1,2,3 print a b,a ...