




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第八章面向?qū)ο缶幊桃贿x擇題Python中的數(shù)據(jù)成員和函數(shù)成員默認(rèn)都是()的A.publicB.privateC.protectD.無法被訪問2.Python將以()開始的成員(但不能由雙下劃線結(jié)束)定義為私有成員A.數(shù)字B.單下劃線C.字母D.雙下劃線3.加法操作對應(yīng)()A.__add__(self,other)B.__sub__(self,other)C.__mul__(self,other)D.__and__(self,other)4.通過(),可以吸收現(xiàn)有類的數(shù)據(jù)和行為來創(chuàng)建新類,并添加新的性能來增強(qiáng)此類。A.繼承B.重載C.類D.對象5.派生類定義一個與基類同名的函數(shù);當(dāng)對象訪問該函數(shù)時,派生類的函數(shù)會()A.覆蓋基類的函數(shù)B.調(diào)用基類的函數(shù)C.調(diào)用基類和派生類的函數(shù)D.基類和派生類的函數(shù)均不調(diào)用6.在派生類定義的函數(shù)中,如果想調(diào)用基類的同名函數(shù),則需要在函數(shù)名前添加()作為限定A.雙下劃線B.基類名和點(diǎn)操作符C.括號D.下劃線7關(guān)于Python多態(tài)以下選項(xiàng)正確的是()A.大多數(shù)面向編程語言都不支持多態(tài)特性B.Python本事不是多態(tài)語言C.Python支持多態(tài)D.Python不支持多態(tài)8關(guān)于面向?qū)ο缶幊滔铝姓f法正確的是()A.面向?qū)ο缶幊痰囊粭l基本原則是計算機(jī)程序是由單個能夠起到子程序作用的單元或?qū)ο蠼M合而成的B.面向?qū)ο蠓椒ń鉀Q問題的思路就是主張從客觀世界固有的事物出發(fā)來構(gòu)造系統(tǒng),提倡用人類在現(xiàn)實(shí)生活中常用的思維方法來認(rèn)識、理解和描述客觀事物C.面向?qū)ο蠓椒ㄊ且环N運(yùn)用一系列面向?qū)ο蟮闹笇?dǎo)軟件構(gòu)造的概念和原則(如類、對象、抽象、封裝、繼承、多態(tài)、消息等)來構(gòu)造軟件系統(tǒng)的開發(fā)方法D.ABC9關(guān)于類和對象下列說法正確的是()對象是存在于某個時空的具體實(shí)體,而類則是擁有共同的結(jié)構(gòu)、行為和語義的一組對象的抽象類可以作為對象的一種描述機(jī)制,用來形成程序中更大的模塊類和對象的關(guān)系就好像數(shù)據(jù)類型和變量的關(guān)系。各個對象可以同屬于一個類,但擁有彼此獨(dú)立的屬性。對象是類的實(shí)例,可以創(chuàng)建類的多個對象ABC10關(guān)于類成員下列說法正確的是()Python中的數(shù)據(jù)成員和函數(shù)成員默認(rèn)都是公開(public)的,即成員在類外可以被訪問利用地圖做長尾關(guān)鍵詞避免數(shù)據(jù)成員被直接修改的方法是將其設(shè)置為私有(private)成員Python中將以雙下劃線開始的成員定義為私有成員ABC二判斷題1.Python允許函數(shù)重載。 ()self指向的是當(dāng)前創(chuàng)建的對象,Python解釋器會自動進(jìn)行傳入。 ()self參數(shù)表示函數(shù)的調(diào)用者被隱式地傳遞到函數(shù)中,在函數(shù)體內(nèi)可以使用self參數(shù)來代表調(diào)用對象訪問其成員。 ()在將數(shù)據(jù)成員設(shè)置為私有后,為了在類外可以操作成員的值需要提供get函數(shù)來獲取值和set函數(shù)來設(shè)置值。 ()迭代是Python中一個很強(qiáng)大的功能,是訪問集合元素的一種方式,利用迭代器可以進(jìn)行優(yōu)雅的遍歷。 ()__iter__()方法返回一個迭代器對象。 ()一個類(Circle類)的成員也可以是另一個類(Point類)的對象。()派生類不能夠根據(jù)自己的特殊性質(zhì)定義新的成員。()派生類雖然繼承了基類的數(shù)據(jù)成員,但由于它們都是私有成員,因此在派生類中不可訪問,只能通過基類定義的公開函數(shù)成員進(jìn)行訪問。 ()在定義了派生類后,派生類所構(gòu)造的對象既可以訪問繼承自基類的成員,又可以訪問派生類自己定義的成員。 ()三填空題1.避免數(shù)據(jù)成員被直接修改的方法是將其設(shè)置為成員。2.Python將以開始的成員(但不能由雙下劃線結(jié)束)定義為私有成員。3.解釋器會拋出-來表示該成員不能在類外部訪問。4.如果想要獲取一個自定義的類的迭代器,需要在類中實(shí)現(xiàn)和方法。5.當(dāng)創(chuàng)建一個新類時,并不需要創(chuàng)建全新的數(shù)據(jù)成員和函數(shù),可以指明這個類繼承某個現(xiàn)有的類。這時,現(xiàn)有的類被稱為-,繼承實(shí)現(xiàn)的新類被稱為。6.在Python中,私有函數(shù)(可以/不可以)被覆蓋。7.在派生類定義的函數(shù)中,如果想調(diào)用基類的同名函數(shù),則需要在函數(shù)名前添加作為限定。8.除了數(shù)據(jù)成員可以設(shè)置為私有成員之外,一些不希望在類外調(diào)用的函數(shù)也可以設(shè)置為。9.通過,可以吸收現(xiàn)有類的數(shù)據(jù)和行為來創(chuàng)建新類,并添加新的性能來增強(qiáng)此類。10.在定義了派生類后,派生類所構(gòu)造的對象既可以訪問的成員,又可以訪問的成員。四簡答題編寫一個Fraction類來管理分?jǐn)?shù)類型并提供一些運(yùn)算和操作。簡述Python中的繼承。簡述Python的isinstance函數(shù)。先設(shè)計一個Point類來表示平面中的點(diǎn)。Point類包含兩個數(shù)據(jù)成員,用來表示平面坐標(biāo)。再設(shè)計Circle類來表示圓。Circle類使用一個Point類的數(shù)據(jù)成員來表示圓心位置,使用另一個數(shù)據(jù)成員表示半徑大小。定義一個學(xué)生信息類。答案 一選擇題A2.D3.A4.A5.A6.B7.D8.D9.D10.D二判斷題×2.√3.√4.√5.√6.√7.√8.×9.√10.√三填空題1.private2.雙下劃線3.AttributeError4.__iter__()__next__()5.基類派生類6.不可以7.基類名和點(diǎn)操作符8.私有9.繼承10.基類派生類四簡答題1.代碼如下1 classFraction:2
#構(gòu)造函數(shù)3
def__init__(self,a=0,b=1):4
ifb==0:5
raiseZeroDivisionError("Denominatorcan'tbezero.")6
divisor=gcd(abs(a),abs(b))7
self.__numerator=(-1ifb<0else1)*a//divisor8
self.__denominator=abs(b)//divisor910
#重載加法運(yùn)算符11
def__add__(self,other):12
m=self.__denominator*other.__denominator13
n1=self.__numerator*other.__denominator14
n2=other.__numerator*self.__denominator15
returnFraction(n1+n2,m)1617
#重載減法運(yùn)算符18
def__sub__(self,other):19
m=self.__denominator*other.__denominator20
n1=self.__numerator*other.__denominator21
n2=other.__numerator*self.__denominator22
returnFraction(n1-n2,m)2324
#重載乘法運(yùn)算符25
def__mul__(self,other):26
m=self.__numerator*other.__numerator27
n=self.__denominator*other.__denominator28
returnFraction(m,n)2930
#重載除法運(yùn)算符31
def__truediv__(self,other):32
m=self.__numerator*other.__denominator33
n=self.__denominator*other.__numerator34
returnFraction(m,n)3536
#重載乘方運(yùn)算符37
def__pow__(self,power,modulo=None):38
n=pow(self.__numerator,power,modulo)39
m=pow(self.__denominator,power,modulo)40
returnFraction(n,m)4142
#重載比較運(yùn)算符43
def__lt__(self,other): result=self.__sub__(other) returnresult.__numerator<0 def__le__(self,other): result=self.__sub__(other) returnresult.__numerator<=0 def__gt__(self,other): result=self.__sub__(other) returnresult.__numerator>0 def__ge__(self,other): result=self.__sub__(other) returnresult.__numerator>=0 def__eq__(self,other): result=self.__sub__(other) returnresult.__numerator==0 def__ne__(self,other): result=self.__sub__(other) returnresult.__numerator!=04647
#重載int函數(shù),將分?jǐn)?shù)值取整48
def__int__(self):49
returnself.__numerator//self.__denominator5051
#重載float函數(shù),將分?jǐn)?shù)化為浮點(diǎn)值52
def__float__(self):53
returnself.__numerator/self.__denominator5455
#重載str函數(shù),使Fraction類對象可打印56
def__str__(self):57
ifself.__denominator==1:58
return"%d"%self.__numerator59
else:60
return"%d/%d"%(self.__numerator,self.__denominator)6162
#全局函數(shù),計算最大公約數(shù)63
defgcd(m,n):64
whilen>0:
m,n=n,m%n
returnm2.繼承是面向?qū)ο蟪绦蛟O(shè)計中的一個重要且功能強(qiáng)大的特性。通過繼承,可以吸收現(xiàn)有類的數(shù)據(jù)和行為來創(chuàng)建新類,并添加新的性能來增強(qiáng)此類。繼承指的是類之間的一般與特殊的關(guān)系。當(dāng)創(chuàng)建一個新類時,并不需要創(chuàng)建全新的數(shù)據(jù)成員和函數(shù),可以指明這個類繼承某個現(xiàn)有的類。這時,現(xiàn)有的類被稱為基類、父類或超類,繼承實(shí)現(xiàn)的新類被稱為子類或派生類。派生類代表了一組更加特殊的對象。通常,派生類包含了從基類繼承而來的數(shù)據(jù)和方法,并進(jìn)行了自己的擴(kuò)充。在定義了派生類后,派生類所構(gòu)造的對象既可以訪問繼承自基類的成員,又可以訪問派生類自己定義的成員。需要注意的是,派生類雖然繼承了基類的數(shù)據(jù)成員,但由于它們都是私有成員,因此在派生類中不可訪問,只能通過基類定義的公開函數(shù)成員進(jìn)行訪問。3.isinstance函數(shù)接收object和classinfo兩個參數(shù)。object參數(shù)是一個類的實(shí)例,classinfo參數(shù)是一個類名。如果object對象是classinfo類的一個直接實(shí)例或間接實(shí)例(即object所屬的類是classinfo類的直接派生類或間接派生類),則該函數(shù)返回True,否則返回False。例如,對于代碼清單8-11中定義的stu對象,調(diào)用isinstance(stu,CollegeStudentInfo)和isinstance(stu,StudentInfo)函數(shù)均返回True。4.1
importmath23
classPoint:4
#構(gòu)造函數(shù)5
def__init__(self,x=0,y=0):6
self.__x=x7
self.__y=y89
#設(shè)置坐標(biāo)10
defsetPosition(self,x=0,y=0):11
self.__x=x12
self.__y=y1314
#獲取坐標(biāo)15
defgetPosition(self):16
return(self.__x,self.__y)1718
#平移坐標(biāo)19
defmove(self,dx,dy):20
self.__x+=dx21
self.__y+=dy2223
#計算到另一個點(diǎn)的直線距離24
defdistanceTo(self,other):25
2627
#重載減法運(yùn)算符28
def__sub__(self,other):29
returnself.distanceTo(other)3031
classCircle:32
#構(gòu)造函數(shù)33
def__init__(self,radius,x=0,y=0):34
self.__center=Point(x,y)35
self.__radius=radius3637
#設(shè)置圓心坐標(biāo)38
defsetCenterPosition(self,x,y):39
self.__center.setPosition(x,y)4041
#設(shè)置半徑大小42
defsetRadius(self,radius):43
self.__radius=radius4445
#獲取圓心坐標(biāo)46
defgetCenterPosition(self):47
returnself.__center.getPosition()4849
#設(shè)置半徑大小50
defgetRadius(self):51
returnself.__radius5253
#計算圓的周長54
defgetPerimeter(self):55
returnmath.pi*2*self.__radius5657
#計算圓的面積58
defgetArea(self):59
returnmath.pi*self.__radius*self.__radius6061
#平移62
defmove(self,dx,dy):63
self.__center.move(dx,dy)6465
#計算與另一個圓的圓心距66
defcenterDistanceTo(self,other):67
returnself.__center.distanceTo(other.__center)6869
#重載in運(yùn)算符70
def__contains__(self,item):71
returnself.__center.distanceTo(item)<=self.__radius7273
#判斷與另一個圓是否內(nèi)含74
defisInternal(self,other):75
returnself.centerDistanceTo(other)<self.__radius-other.__radius7677
#判斷與另一個圓是否重合78
defisCoincided(self,other):79
returnself.__radius==other.__radius\80
andself.centerDistanceTo(other)==08182
#判斷與另一個圓是否內(nèi)切83
defisInternallyTangent(self,other):84
returnself.centerDistanceTo(other)==self.__radius-other.__radius\85
andself.__radius!=other.__radius8687
#判斷與另一個圓是否相交88
defisSecant(self,other):89
returnself.__radius-other.__radius<self.centerDistanceTo(other)\90
<self.__radius+other.__radius9192
#判斷與另一個圓是否外切93
defisExternallyTagent(
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游管理案例研究練習(xí)題
- 學(xué)科交叉融合促進(jìn)應(yīng)用型人才綜合素質(zhì)發(fā)展
- 零售電商行業(yè)銷售趨勢統(tǒng)計表
- 汽車工程維修技術(shù)知識點(diǎn)解析
- 2025年文化傳播與互聯(lián)網(wǎng)的綜合能力考核考試卷及答案
- 2025年現(xiàn)代詩歌鑒賞能力考試試卷及答案
- 2025年數(shù)理邏輯與數(shù)學(xué)思維考試試題及答案
- 2025年審計學(xué)基礎(chǔ)理論與實(shí)務(wù)能力提高測試卷及答案
- 2025年人工智能倫理與社會影響知識測試卷及答案
- 2025年綠色經(jīng)濟(jì)與可持續(xù)發(fā)展考試卷及答案
- 公司業(yè)務(wù)提成方案
- 醫(yī)學(xué)高級職稱評審答辯報告PPT模板
- 《緩解新入園幼兒焦慮策略的研究》課題結(jié)題材料(開題報告、中期報告、結(jié)題報告、調(diào)查問卷、課題論文)
- 《數(shù)學(xué)歸納法》 優(yōu)秀獎 教學(xué)課件
- ANSIESD S20.202021 中英文對照版
- 投入的主要施工機(jī)械計劃
- GB-T 19639.2-2014 通用閥控式鉛酸蓄電池 第2部分:規(guī)格型號
- 公司財政資金財務(wù)管理辦法
- 《數(shù)據(jù)采集與預(yù)處理》教學(xué)教案(全)
- DVD在線租賃的分配問題
- 焊接技能訓(xùn)練教案.
評論
0/150
提交評論