Python教程_600集Python從入門到精通教程(懂中文就能學會)
《零基礎入門學習Python》(小甲魚) P1-53
面向對象:封裝、繼承、多態
先有一個類,然後創建多個對象。
封裝
類的三要素:類名(大駝峯)、屬性、方法。
dir()
查看所有屬性和方法。
class 類名: #簡單類,只含方法
def 方法(self, 參數列表):
對象變量 = 類名() #創建對象
創建對象自動調用初始化方法,初始化對象,定義實例屬性。
內置方法:
__init__
self.屬性 #定義屬性
__del__ #自動銷燬
__str__
一個對象的屬性可以是另一個類創建的對象。
定義屬性時,不知道如何設置初始值,可設爲None
。
私有屬性、私有方法:
__屬性
__方法():
內部使用,外部不能。但python是僞私有。
繼承
子類class 子類(父類):
擁有父類class 父類:
的所有屬性和方法。
子類不能訪問/調用父類的私有屬性/方法。父類內部可以。
子類通過調用父類公共方法可以間接訪問/調用父類的私有屬性/方法。
方法重寫
在子類中定義同名的方法,調用的將是重寫方法。
方法擴展
重寫、super().方法
、子類特有代碼
多繼承
class 子類(父類1, 父類2, ……)
有多個父類同名方法,按照從左到右的順序。__mro__
查看順序
多態
在子類中繼承和重寫父類方法,使不同的子類對象調用相同的父類方法,但產生不同的結果。
類方法
類是特殊的對象,類對象只有一個,可以創建多個實例對象。
@classmethod
def 類方法(cls):
代碼
靜態方法
不訪問屬性,也不調用方法。
@staticmethod
def 靜態方法():
代碼
__new__
object基類提供的內置靜態方法:在內存中爲對象分配空間;返回對象的引用。
異常
try:
嘗試執行的代碼塊
except 錯誤類型1:
執行代碼
except (錯誤類型2, 錯誤類型3):
執行代碼
except Exception as result:
執行代碼
else:
沒有異常的代碼
finally:
無論是否異常的代碼
模塊
import 模塊1
import 模塊2
import 模塊 as 別名(大駝峯)
from 模塊 import * #導入所有,可直接使用工具
from 模塊 import 工具
所有python文件都是模塊,所有沒有縮進的代碼都會被執行。
導入模塊、定義變量、類、函數等
def main():
代碼
if __name__ == "__main__":
main()
只在測試時被執行,導入時不執行。
包:多個模塊和__init__.py
(從當前目錄導入的模塊列表)。
文件
file = open ("XXX")
r
只讀 w
只寫(覆蓋,創建) a
追加(創建)
file.read
file.readline
本質是移動指針
file.seek
修改指針
file.write
file.writelines
file.close
with open() as XX
不用考慮close
OS模塊
os.rename remove listdir mkdir rmdir getcwd chdir pathisdir
等
os.path.basename dirname
等
pickle模塊
序列化 反序列化
一般用來存放數據
dump
將數據導入文件中
load
將文件讀出