版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Python基礎(chǔ)課教室講師:式微 時間:2018年9月教學(xué)監(jiān)督熱線 教學(xué)監(jiān)督熱線 01020304必須掌握:super的用法必須掌握: _str_ _repr_ _call_ 方法了解:多繼承方法解析順序和Mixin開發(fā)模式了解:魔術(shù)方法原理和作用知識點回顧本節(jié)知識點01. _new_方法02. 定制屬性訪問03. 描述符教學(xué)監(jiān)督熱線 04. 裝飾器PART ONE_new_方法教學(xué)監(jiān)督熱線 思考01類每次實例化的時候都會創(chuàng)建一個新的對象,如果要求類只能被實例化一次該怎么做呢?_new_方法class Earth: def _new_(cls): if not hasattr(cls, ins
2、tance): cls.instance = super()._new_(cls) return cls.instance def _init_(self): = earthe = Earth()print(e, id(e)a = Earth()print(a, id(a)在上面的例子中,我們可以看到兩個實例的ID是相同的意味著這兩個其實引用的是同一個實例,是一個實例的不同名字_new_方法初始化函數(shù)之前單例模式合理利用_new_ 方法合理利用可以帶來方便,常應(yīng)用在類的單例模式利用這個 _new_ 可以很方便的實現(xiàn)類的單例模式_new_方法會在初始化函數(shù) _init_ 之前
3、執(zhí)行_new_方法總結(jié)必須掌握:_new_ 方法的運行順序了解:使用 _new_ 方法的單例模式應(yīng)用PART TWO定制屬性訪問教學(xué)監(jiān)督熱線 思 考010203如何判斷一個實例里面有某個屬性呢?怎樣刪除實例屬性呢?同樣的怎樣刪除變量呢?定制屬性訪問03 04 02 re = Rectangle(3, 4) # 矩形類實例改:setattr(b, length, 6)b._setattr_(length, 5)增:b.aaa = 1setattr(b, bbb, 2)b._setattr_(ccc, 3)刪:delattr(b, ccc)b._delattr_(bbb)del b01查:hasa
4、ttr(re, length)# 返回bool值getattr(re, length)# 返回屬性值b. _getattribute_(length) # 返回屬性值getattr(object,name,default) hasattr(object,name)setattr(object,name,value) = valuedelattr(object,name) del getattr / hasattr / setattr / delattrdef hasattr(object, name_string): try:
5、 getattr(object, name_string) return True except AttributeError: return False定制屬性訪問re = Rectangle(3, 4) # 矩形類實例當(dāng)屬性不存在時,如果定義了此方法,則調(diào)用方法01def _getattr_(self, item): print(no attribute)定制屬性訪問b.lengthb._getattribute_(length)屬性值存在屬性值不存在返回屬性值調(diào)用_getattr_未定義時報錯定制屬性訪問hasattrgetattrsetattr設(shè)置屬性得到屬性值判斷是否存在屬性,如果屬
6、性存在則進行下一步操作定制屬性訪問總結(jié)必須掌握:hasattr getattr setattr了解: _getattribute_熟悉: 屬性調(diào)用規(guī)則PART THREE描述符教學(xué)監(jiān)督熱線 思 考01如果在一個類中實例化另一個類,對這個屬性進行訪問的時候怎么做的?描述符class MyAtrribute: def _get_(self, instance, owner): print(get) def _set_(self, instance, value): print(set) def _delete_(self, instance): print(del)class MyClass: m
7、 = MyAtrribute() def _del_(self): print(instance delete)c = MyClass()c.mc.m = 1del c.m這類里面實例化另一個類,對這個實例做訪問時,需要定義 _get_ _set_ _delete_ 方法魔術(shù)方法描述符大家了解即可魔術(shù)方法的作用其實是讓開發(fā)人員能夠更加靈活的控制類的表現(xiàn)形式描述符總結(jié)了解描述符即可PART FOUR裝飾器教學(xué)監(jiān)督熱線 思 考01之前我們講了閉包,閉包中可以傳入一個函數(shù)嗎?裝飾器上面這里實現(xiàn)了給函數(shù)的結(jié)果加1的功能內(nèi)置裝飾器類裝飾器類也可以做裝飾器,但是需要定義 _call_ 方法裝飾器參考裝飾器修飾函數(shù)增加功能內(nèi)置裝飾器三個內(nèi)置裝飾器是需要掌握的,在項目中會經(jīng)常使用給函數(shù)增加功能修飾函數(shù)裝飾器總結(jié)必須掌握:裝飾器概念和用法必須掌握:三個內(nèi)置裝飾器的用法本節(jié)知識點回顧必須掌握:_new_方法的運行順序必須掌握:裝飾器的概念的用法必須掌握:三個內(nèi)置裝飾器了解:類中屬性的訪問過程作 業(yè)把上課的例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版窗簾布藝定制與售后維修服務(wù)合同3篇
- 2024版信息調(diào)研保密協(xié)議3篇
- 個人二手房產(chǎn)買賣協(xié)議樣本(2024版)
- 2025年度工業(yè)用地租賃居間合同范本4篇
- 2025餐飲業(yè)食品安全溯源技術(shù)合作合同范本3篇
- 2024版深水井施工合同
- 2025年叉車租賃合同范本一(含綠色節(jié)能要求)4篇
- 二零二五年度補充協(xié)議范本:簽約次數(shù)規(guī)定及實施標(biāo)準(zhǔn)3篇
- 2024礦業(yè)資產(chǎn)買賣貸款居間服務(wù)協(xié)議版B版
- 二零二五年度風(fēng)力發(fā)電機組安裝與維護協(xié)議6篇
- 上海市12校2025屆高三第一次模擬考試英語試卷含解析
- 三年級數(shù)學(xué)(上)計算題專項練習(xí)附答案集錦
- 鋪大棚膜合同模板
- 長亭送別完整版本
- 《鐵路軌道維護》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲系統(tǒng)解決方案
- 《銷售心理學(xué)培訓(xùn)》課件
- 2024年安徽省公務(wù)員錄用考試《行測》真題及解析
- 你比我猜題庫課件
- 豐順縣鄉(xiāng)鎮(zhèn)集中式飲用水水源地基礎(chǔ)狀況調(diào)查和風(fēng)險評估報告
評論
0/150
提交評論