python封裝,繼承,多態及內置函數筆記

子類繼承父類時,所有方法都會被繼承,包括init初始化方法,init

如果有參數,子類實例化時,也需要傳參,子類不需要父類方法時,可

重寫
父類名.init(self,參數) 調用父類初始化方法
super() 當前類的父類
類名.bases 獲取當前類的父類
多重繼承時,當多個父類中出現相同的方法名,那麼類名(父類,父類

)哪個父類在前,則用哪個父類中的方法
封裝:確保對象中的數據安全
繼承:保證了對象的可擴展性
多態:保證了程序的靈活性
直接在類中定義的類屬性是類屬性,類屬性可以通過類或類的實例訪


類屬性只能通過類來修改,無法通過實例對象修改,實例對象會添加新

的屬性,覆蓋掉以前的舊屬性
通過self和實例對象添加的屬性,稱爲實例屬性,實例屬性不能通過

類修改和訪問
實例方法:
在類中定義,以self爲第一個參數的方法都是實例方法
實例方法,可以通過實例對象和類調用,通過類調用時,不

會傳遞self,需要手動傳遞selfbr/>類方法:
在類中定義,並且被@classmethod修飾的方法
類方法第一個參數是cls,也會被自動傳遞,代表當前類
br/>類方法也可以通過類和實例對象調用
靜態方法:
在類中定義,並且被@staticmethod修飾的方法
靜態方法可以通過類和實例對象調用
靜態方法一般都是一些工具方法,和當前類無關
del 魔法方法,會在垃圾回收前調用
del 變量 刪除的是變量,不是對象
特殊方法(以雙下劃線開始結尾):
str(self) print輸出對象時,輸出的是str方法的

返回值
repr(self) 這個方法會在對當前對象使用repr()函

數時調用
它的作用是指定對象在'交互模式(shell編輯器)'中直接輸

出的效果
lt(self,other) 小於
le(self,other) 小於等於
eq(self,other) 等於
ne(self,other) 不等於
gt(self,other) 大於
ge(self,other) 大於等於
以上方法會在比較的時候調用,返回值將會作爲比較的結果
len() 獲取對象的長度
bool(self) 判斷對象是否爲空,不爲空返回True
模塊化:
1.方便開發
2.方便維護
3.模塊可複用
引入模塊:
import 模塊名
import 模塊名 as 別名
模塊實例只有一個,同個模塊,引用多次也只能有一個
name屬性 可以獲取模塊名,值爲main的模塊

是主模塊,主模塊是直接通過python執行的模塊
實例化其他模塊中的類,模塊名.對象名()
from 模塊名 import 變量或方法名 只引入模塊中部分功


from 模塊名 import * 引入模塊所有內容
from 模塊名 import 方法名 as 別名 避免其他模

塊與當前模塊方法覆蓋,起別名
其他模塊中,添加了_的變量,通過from 模塊名 import *

引入時,這種變量不會被引入

if name == 'main': 檢查當前模塊是否爲主模塊
模塊是一個py文件,而包也是模塊,也是文件夾,可以用import導入

,當一個模塊需要被分解爲多個模塊或模塊中代碼過多時,就需要包

(package),包中必須要有一個init.py這個文件,這個文件中可

以包含有包中的主要內容
import 包名 導入包
from 文件夾 import 包名 導入包中的模塊
pycache 是模塊的緩存文件
python代碼在執行前,需要被解析器轉換爲機器碼,然後再

執行,所以我們在使用模塊(包)時,也需要將模塊的代碼轉換爲機器

碼然後交給計算機執行,爲了提高程序運行的性能,python會在編譯

過一次之後,將代碼保存到一個緩存文件中,這樣下次加載這個模塊

時(包)時,就可以不再重新編譯而是直接加載緩存編譯好的代碼即可
sys模塊:提供了一些變量和函數,可以獲取到python解析器的信息或

者操作python解析器
sys內置模塊:
sys.argv 獲取執行代碼時,命令行中所包含的參


sys.modules 獲取當前程序中引入的所有模塊
sys.path 程序調用模塊的搜索路徑
sys.platform 程序運行平臺
sys.exit(字符串) 退出程序
os(操作系統)內置模塊:
os.environ 這個屬性可以獲取到系統的環境變量
os.environ['path'] 獲取path環境變量
os.system('cmd命令') 執行cmd命令

pprint模塊提供了一個pprint()方法,可以用來對打印的數據做簡單

的格式化,調用:pprint.pprint(輸出內容)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章