子類繼承父類時,所有方法都會被繼承,包括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(輸出内容)
轉載于:https://blog.51cto.com/3945465/2385208