編程思想
面向對象
以對象爲核心,根據需求 實現一個個對象
面向過程
以動作爲核心 根據需求 以流水賬的形式進行書寫
類與對象的關係
抽象的概念
類就是對象的模板 圖紙
對象就是客觀事物在人腦中的主觀反應 小孩--動物園
類是對象共性的抽象 貓 狗 馬 -- 動物的特點 會動,會跑,會叫
類的創建
class 類名(首字母大寫):
pass
class A:
name = A:
tedian1 = huijiao
tedian2 = huipao
tedian3 = huidong
對象的創建
1. 使用類進行創建
類名() -- > 對象
一個類可以創建多個對象
屬性與方法訪問
使用類對象.屬性名可以訪問類屬性
使用實例對象.屬性名同樣可以訪問類屬性
注意:
如果使用類去調用方法的時候需要手動給self傳一個實參(實例對象)
屬性
1. 屬性
在類的內部 方法的外部 以屬性名=值的形式存在
所有的實例對象都可以訪問類屬性,
一旦類屬性發生改變,所有的實例對象訪問時都會發生改變
如果使用實例對象修改類屬性,則類屬性被實例屬性所覆蓋,實例屬性發生改變,不會影響其他的實例對象,
方法
其實是通過函數來實現的
該函數綁定到了當前的類中,使用的時候使用類名/實例對象名.函數名() 來調用
組合
一個類的屬性可以是另一個對象
補充
公私有問題
1.屬性方法名前沒有任何的下劃線 :公有成員
2.前後加兩條下劃線:魔法成員
__init__()
所有魔法成員都會被系統自動調用 不需要手動執行
3.前只有一條下劃線
受保護的
只有在當前文件或者其他文件的子類中可以訪問
4.前面加兩條下劃線
私有方法私有屬性
只能本類進行訪問 (僞私有化)
python 垃圾回收機制 主要是引用計數爲主,分代回收爲輔助,標記清除
引用次數+1的四種情況:
1.對象被創建 a = 10
2.對象被引用 b = a
3.對象被作爲參數,傳入到函數當中 fun(a)
4.對象作爲一個元素,儲存到了容器當中 l=[a,1]
引用次數-1的情況:
1.當該對象的別名被銷燬的時候?對象引用次數,-1
2.當該對象的引用被另一個對象引用 對象的引用此數-1
3.一個對象離開它的作用域 引用次數-1
4.該對象從容器中被刪除時,或者容器被銷燬