Python筆記 【無序】 【五】
描述符
將某種特殊類型的類【只要實現了以下或其中一個】的實例指派給另一個類的屬性
1.__get__(self,instance,owner)//訪問屬性,返回屬性的值
2.__set__(self,instance,value)//將在屬性分配【即賦值】中調用,不返回任何內容
3.__delete__(self,instance)//控制刪除操作,不反回任何內容
重寫property
Del ---delete
練習
定制序列【定制容器】 容器---序列【字符串,元組,列表】+映射類型【字典】
練習 不可變類型 記錄每個元素的訪問次數
*args表示參數可變數量
self.values = [x for x in args] //列表推導式的形式,把參數放到列表values中
接著第二行為字典的初始化操作,鍵值對---數值-訪問次數【全化為0】的形式
叠代器
【提供叠代方法的容器稱為叠代器】 ---as字典,字符串,元組
常利用for循環!
for i in “xxxxx”:
Print(i)
叠代器內置函數:
iter(xxx) 容器對象調用iter()得到叠代器
next(xxx)返回下一個值,沒有值可以返回了,python就拋出StopIteration的異常
string = "ssada"
a = iter(string)
叠代器的魔法方法:
__iter__()
__next__()
生成器【特殊的函數,可終端、暫停可暫時交還控制權】
生成器【特殊的叠代器,是他的一個實現】
函數中有yield語句,此函數被定義為生成器
斐波那契數列:
列表推導式:
字典推導式:
集合推導式:
生成器推導式
()括起來的,,,,,,
yield = return //不過有暫停功能
模塊【更高級的封裝】
即保存了一個.py的程序文件即是模塊
導入模塊
1.
import xx
xx.yy() ----使用導入模塊中的方法
2.
form 模塊名 import 函數名
yy()
3.
import 模塊名 as 新名字
x.yy() ----使用導入模塊中的方法
__name__、__main__、搜索路徑和包
可以在每個模塊後編寫測試方法 ---
def test():
……
test() //調用
防止模塊中測試方法在主程序中被使用顯示
__name__
‘__main__‘ //主程序中如此顯示
xx.__name__
‘顯示模塊名‘ //模塊中如此顯示
搜索路徑
import 包名.模塊名
Python筆記 【無序】 【五】