物件導向程式設計
物件導向的特性如下:
類:具有相同屬性和方法的一類事物,成為類。
物件:類的例項化後的結果,乙個類可以例項化多個物件,每個物件也可以不同的屬性。
封裝:在類中對資料的賦值,類裡面包含著類的資料和方法。
繼承:乙個類可以派生出子類,在父類定義的屬性方法自動被子類繼承。
多型:乙個類可以有多個子類,每個子類繼承父類的屬性和方法,但是對父類的方法做了不同的實現,這就是同乙個事物表現出不同的形態。
例子:
#定義類class
dog:
name='
egon'#
靜態屬性
def bule(self): #
定義乙個方法
print("
%s 汪汪汪
" %dog.name)
f=dog() #
把這個類例項化,相當於建立了乙個物件
f.bule() #
呼叫類中的方法
結果:
例項化呼叫類的時候,會在記憶體中開啟乙個空的空間,類會把傳入的引數
__init__函式
名稱:建構函式
作用:類的例項初始化
類變數作用:大家共用的屬性,節省開銷。
析構函式:在例項釋放和銷毀的時候,執行析構函式,通常做一些掃尾工作。
def __del__(self):
私有方法
在方法前面加__
私有屬性
在屬性前面加__
繼承先寫乙個父類:
例子:
classanimal(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)
多繼承:
經典類:
classjiaoshi:
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
')
新式類:
classjiaoshi(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 ...