版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
類的特殊方法—獲取網(wǎng)頁數(shù)據(jù)任務(wù)描述寫一個(gè)網(wǎng)頁數(shù)據(jù)操作類(提示:需要用到urllib模塊)。完成以下功能:(1)get_httpcode():獲取網(wǎng)頁的狀態(tài)碼并返回結(jié)果;例如:200,301,404等,類型為int。(2)get_htmlcontent():獲取網(wǎng)頁的內(nèi)容,返回類型為str。(3)get_linknum():計(jì)算網(wǎng)頁的鏈接數(shù)目。本任務(wù)要求編寫程序,定義網(wǎng)頁類page_data,分別創(chuàng)建get_httpcode()、get_htmlcontent()、get_linknum()方法,通過構(gòu)造方法獲取百度網(wǎng)頁的數(shù)據(jù)。Python系統(tǒng)內(nèi)置了幾個(gè)特殊的方法,它們是構(gòu)造方法與析構(gòu)方法、類方法和靜態(tài)方法。01構(gòu)造方法與析構(gòu)方法02靜態(tài)方法與類方法03任務(wù)實(shí)現(xiàn)構(gòu)造方法與析構(gòu)方法01構(gòu)造方法每個(gè)類都有一個(gè)默認(rèn)的__init__()方法,即構(gòu)造方法。如果定義類時(shí)顯式地定義__init__()方法,那么創(chuàng)建對(duì)象時(shí)Python解釋器會(huì)調(diào)用顯式定義的__init__()方法;如果定義類時(shí)沒有顯式定義__init__()方法,那么Python解釋器會(huì)調(diào)用默認(rèn)的__init__()方法。構(gòu)造方法__init__()方法按照參數(shù)的有無(self除外)可分為無參構(gòu)造方法和有參構(gòu)造方法。無參構(gòu)造方法:無參構(gòu)造方法中可以為屬性設(shè)置初始值,此時(shí)使用該方法創(chuàng)建的所有對(duì)象都具有相同的初始值。有參構(gòu)造方法:有參構(gòu)造方法中可以使用參數(shù)為屬性設(shè)置初始值,此時(shí)使用該方法創(chuàng)建的所有對(duì)象都具有不同的初始值。構(gòu)造方法定義一個(gè)Information類,在該類中顯式地定義一個(gè)帶有3個(gè)參數(shù)的__init__()方法。classInforamtion(object):def__init__(self,name,sex):=nameself.sex=sexinfomation=Inforamtion('李婉','女')前面在類中定義的屬性是類屬性,可以通過對(duì)象或類進(jìn)行訪問;在構(gòu)造方法中定義的屬性是實(shí)例屬性,只能通過對(duì)象進(jìn)行訪問。構(gòu)造方法計(jì)算學(xué)生成績(jī)。定義一個(gè)學(xué)生類,具體要求如下:1.有如下屬性:姓名、年齡、成績(jī)(語文,數(shù)學(xué),英語),其中每科成績(jī)的類型為整數(shù)。2.有如下方法獲取學(xué)生的姓名:get_name(),返回值類型為str;獲取學(xué)生的年齡:get_age(),返回值類型為int。返回3門科目中的最高分:get_course(),返回類型為int。寫好類以后,定義一個(gè)學(xué)生實(shí)例進(jìn)行測(cè)試。classStudnet(object):def__init__(self,name,age,score):=nameself.age=ageself.score=scoredefget_name(self):returndefget_age(self):returnself.agedefget_course(self):returnmax(self.score)zm=Studnet('Gaoyong',20,[82,96,88])print(zm.get_name())print(zm.get_age())print(zm.get_course())析構(gòu)方法當(dāng)一個(gè)對(duì)象的引用計(jì)數(shù)器數(shù)值為0時(shí),就會(huì)調(diào)用__del__()方法,這個(gè)方法就是類的析構(gòu)方法。importsysclassDestruction(object):def__del__(self):print('對(duì)象被釋放')destruction=Destruction()print(sys.getrefcount(destruction))析構(gòu)方法Python的析構(gòu)方法采用的是垃圾回收機(jī)制。Python中的垃圾回收主要采用的是引用計(jì)數(shù)。引用計(jì)數(shù)是一種內(nèi)存管理技術(shù),它通過引用計(jì)數(shù)器記錄所有對(duì)象的引用數(shù)量,當(dāng)對(duì)象的引用計(jì)數(shù)器數(shù)值為0時(shí),就會(huì)將該對(duì)象視為垃圾進(jìn)行回收。getrefcount()函數(shù)是sys模塊中用于統(tǒng)計(jì)對(duì)象引用數(shù)量的函數(shù),其返回結(jié)果通常比預(yù)期的結(jié)果大1。這是因?yàn)間etrefcount()函數(shù)也會(huì)統(tǒng)計(jì)臨時(shí)對(duì)象的引用。類方法與靜態(tài)方法02類方法實(shí)例方法定義時(shí)只比普通函數(shù)多一個(gè)self參數(shù)的方法稱為實(shí)例方法,它只能通過類實(shí)例化的對(duì)象調(diào)用。classCar:
wheels=4
#
屬性
defdrive(self):
#實(shí)例方法
print(‘開車方法')類方法與實(shí)例方法的不同點(diǎn):類方法實(shí)例方法使用裝飾器@classmethod修飾——類方法的第一個(gè)參數(shù)為cls,它代表類本身實(shí)例方法的第一個(gè)參數(shù)為self,它代表對(duì)象本身即可由對(duì)象調(diào)用,亦可直接由類調(diào)用只能由對(duì)象調(diào)用可以修改類屬性無法修改類屬性類方法定義類方法類方法可以被類名或?qū)ο竺{(diào)用,其語法格式如下:類名.類方法對(duì)象名.類方法修改類屬性在實(shí)例方法中無法修改類屬性的值,但在類方法中可以修改類屬性的值。classApple(object):count=0defadd_one(self):#實(shí)例方法
self.count=1@classmethoddefadd_two(cls):#類方法cls.count=2apple=Apple()apple.add_one()print(Apple.count)Apple.add_two()print(Apple.count)02靜態(tài)方法靜態(tài)方法與實(shí)例方法的不同:靜態(tài)方法實(shí)例方法使用裝飾器@staticmethod修飾——方法中需要以“類名.方法/屬性名”的形式訪問類的成員方法中需要以“self.方法/屬性名”的形式訪問類的成員既可由對(duì)象調(diào)用,亦可由類調(diào)用只能由對(duì)象調(diào)用定義一個(gè)包含屬性num與靜態(tài)方法static_method()的類Example。classExample:num=10#類屬性@staticmethod#定義靜態(tài)方法defstatic_method():print(f"類屬性的值為:{Example.num}")print("靜態(tài)方法")任務(wù)實(shí)現(xiàn)03獲取百度網(wǎng)頁數(shù)據(jù)#獲取網(wǎng)頁數(shù)據(jù)importurllib.requestclassPage_data(object):def__init__(self,url_add):self.url=url_adddefget_httpcode(self):status=urllib.request.urlopen(self.url).codereturnstatusdefget_htmlcontent(self):contentstr=urllib.request.urlopen(self.url).read()returncontentstrdefget_linknum(self):content=urllib.request.urlopen(self.url).read()returnlen(content.decode('utf-8').split('<ahref'))-1
A=Page_data('')print(A.get_httpcode())print(A.get_htmlcontent())print(A.get_linknum())
任務(wù)總結(jié)Python系統(tǒng)內(nèi)置了構(gòu)造方法與析構(gòu)方法、類方法和靜態(tài)方法。每個(gè)類都有一個(gè)默認(rèn)的__init__()方法,即構(gòu)造方法。__init__()方法有無參構(gòu)造方法和有參構(gòu)造方法之分。無參構(gòu)造方法是指無參構(gòu)造方法中可以為屬性設(shè)置初始值,此時(shí)使用該方法創(chuàng)建的所有對(duì)象都具
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 打樁中介費(fèi)合同范例
- 官方合同范例參考
- 婚姻買賣協(xié)議合同范例
- 2024年黑龍江客運(yùn)運(yùn)輸從業(yè)資格證模擬考試
- 2024年白銀客運(yùn)從業(yè)資格證模擬考試練習(xí)題
- 2024年昆明客運(yùn)從業(yè)資格證考試試題庫答案解析
- 2024年貴陽c1考客運(yùn)資格證考什么條件
- 2024年廣東客運(yùn)從業(yè)資格證考試考什么
- 2024年甘肅客運(yùn)從業(yè)資格證考試答題技巧與方法
- 管理會(huì)計(jì)實(shí)務(wù) 習(xí)題答案 情境六 答案
- 夏季反季節(jié)施工方案綠化
- 專業(yè)技術(shù)人員網(wǎng)絡(luò)安全知識(shí)提升
- 上期開特下期出特公式
- 中國(guó)藥科大藥大動(dòng)力學(xué)重點(diǎn)總結(jié)
- 高中生物必修一學(xué)考知識(shí)總結(jié)
- 火力發(fā)電廠設(shè)計(jì)技術(shù)規(guī)程(熱控部分)
- 中醫(yī)師承學(xué)員報(bào)名申請(qǐng)表
- MSDS(T-35)DBE溶劑
- DFMEA模板(完整版)
- 實(shí)驗(yàn)室6S管理實(shí)施細(xì)則
- 學(xué)習(xí)解讀2021年《全民科學(xué)素質(zhì)行動(dòng)規(guī)劃綱要(2021—2035年)》PPT演示課件
評(píng)論
0/150
提交評(píng)論