Python程序設(shè)計任務(wù)驅(qū)動式教程(微課版)課件 模塊6 類定義與使用_第1頁
Python程序設(shè)計任務(wù)驅(qū)動式教程(微課版)課件 模塊6 類定義與使用_第2頁
Python程序設(shè)計任務(wù)驅(qū)動式教程(微課版)課件 模塊6 類定義與使用_第3頁
Python程序設(shè)計任務(wù)驅(qū)動式教程(微課版)課件 模塊6 類定義與使用_第4頁
Python程序設(shè)計任務(wù)驅(qū)動式教程(微課版)課件 模塊6 類定義與使用_第5頁
已閱讀5頁,還剩126頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

【任務(wù)6-1】定義商品類及其成員【任務(wù)描述】(1)在PyCharm集成開發(fā)環(huán)境中創(chuàng)建項目Unit06。(2)在項目Unit06創(chuàng)建Python程序文件6-1.py。(3)定義商品類Commodity。(4)定義類的多個公有屬性和私有屬性。(5)定義多個實例方法。(6)分別通過類名稱、實例名稱訪問類的屬性。(7)分別通過類的實例方法輸出類的公有屬性和私有屬性值?!救蝿?wù)實施】1.創(chuàng)建PyCharm項目Unit06成功啟動PyCharm后,在指定位置“D:\PycharmProject\”,創(chuàng)建PyCharm項目Unit06?!救蝿?wù)實施】2.創(chuàng)建Python程序文件6-1.py在PyCharm項目“Unit06”中,新建Python程序文件“6-1.py”,同時PyCharm主窗口顯示程序文件“6-1.py”的代碼編輯窗口,在該程序文件的代碼編輯窗口也自動添加了模板內(nèi)容。【任務(wù)實施】在新建文件“6-1.py”的代碼編輯窗口已有模板注釋內(nèi)容下面,輸入程序代碼。classCommodity:'''商品類'''#定義類的公有屬性,公共屬性在類外部可以直接進(jìn)行訪問

commodityCode="100009177374"#定義公有類屬性:商品編號

commodityName="華為Mate30Pro5G"#定義公有類屬性:商品名稱

commodityPrice=6899.00#定義公有類屬性:價格

produceDate="2020/1/18"#定義公有類屬性:生產(chǎn)日期【任務(wù)實施】

#定義類的私有屬性,私有屬性在類外部無法直接進(jìn)行訪問

__code="65559628242"__name="海信(Hisense)100L7"__price=79999.00__date="2020/1/6"defprintLine(self):print("-----------------------------------------------")【任務(wù)實施】

defprintCommodityPublic(self):print("商品編號:"+modityCode)print("商品名稱:"+modityName)print("價格:"+"{:.2f}“.format(CmodityPrice))print("生產(chǎn)日期:"+CduceDate)【任務(wù)實施】

defprintCommodityPrivate(self):print("商品編號:"+self.__code)print("商品名稱:"+self.__name)print("價格:"+"{:.2f}“.format(Commodity.__price))print("生產(chǎn)日期:"+Commodity.__date)【任務(wù)實施】針對創(chuàng)建的類Commodity實施以下各項操作。1.直接使用類名稱訪問類的公有屬性直接使用類名稱訪問類的公有屬性的代碼如下:print("商品編號:"+CmodityCode)print("商品名稱:"+CmodityName)print("價格:"+"{:.2f}".format(CmodityPrice))print("生產(chǎn)日期:"+CduceDate)其運(yùn)行結(jié)果如下所示?!救蝿?wù)實施】

2.使用類的實例名稱訪問類的公有屬性使用類的實例名稱訪問類的公有屬性的代碼如下:goods=Commodity()print("商品編號:"+modityCode)print("商品名稱:"+modityName)print("價格:"+"{:.2f}".format(modityPrice))print("生產(chǎn)日期:"+duceDate)【任務(wù)實施】

3.調(diào)用類的實例方法輸出類的公有屬性調(diào)用類的實例方法輸出類的公有屬性的代碼如下:goods.printCommodityPublic()4.通過類名稱或類實例名稱訪問類的私有屬性類外部通過類名稱或類實例名稱不能直接訪問類的私有屬性?!救蝿?wù)實施】

5.調(diào)用類的實例方法輸出類的私有屬性調(diào)用類的實例方法輸出類的私有屬性的代碼如下:goods.printLine()goods.printCommodityPrivate()Commodity.printLine(goods)【任務(wù)實施】其運(yùn)行結(jié)果如下所示:---------------------------------------------------------商品編號:65559628242商品名稱:海信(Hisense)100L7價格:79999.00生產(chǎn)日期:2020/1/6---------------------------------------------------------快樂學(xué)習(xí)!高效學(xué)習(xí)!祝學(xué)習(xí)進(jìn)步!【任務(wù)6-2】修改與訪問類屬性、建立實例屬性【任務(wù)描述】(1)在項目Unit06創(chuàng)建Python程序文件6-2.py。(2)創(chuàng)建類Commodity及定義其屬性和方法。(3)創(chuàng)建類對象goods1和goods2。(4)通過類名稱Commodity調(diào)用類的實例方法

輸出類初始定義的公有屬性?!救蝿?wù)描述】(5)使用類名稱Commodity修改類的公有屬性,代碼如下所示。CmodityCode="12563157"CmodityName="給Python點顏色青少年學(xué)編程"CmodityPrice=59.80CduceDate="2019/9/1"(6)直接使用類名稱Commodity輸出類修改之后的公有屬性。(7)使用類實例名稱goods1輸出類修改之后的公有屬性?!救蝿?wù)描述】(8)使用第2個實例名稱goods2輸出類修改之后的公有屬性。(9)通過類名稱Commodity調(diào)用類的實例方法

輸出類修改之后的公有屬性。(10)通過實例名稱goods1調(diào)用類的實例方法

輸出類修改之后的公有屬性?!救蝿?wù)描述】(11)第2次修改類的公有屬性,代碼如下所示。對應(yīng)代碼如下:modityCode="4939815"modityName="格力KFR-72LW/NhIbB1W"modityPrice=9149.00duceDate="2019/8/8"【任務(wù)描述】(12)直接使用類名稱Commodity輸出類第2次修改之后的公有屬性。(13)使用第1個實例名稱goods1輸出類第2次修改之后的公有屬性。(14)使用第2個實例名稱goods2輸出類第2次修改之后的公有屬性。(15)通過類名稱Commodity調(diào)用類的實例方法

輸出類第2次修改之后的公有屬性。(16)分別通過實例名稱goods1、goods2調(diào)用類的實例方法

輸出類第2次修改之后的公有屬性?!救蝿?wù)實施】在PyCharm項目“Unit06”中,新建Python程序文件“6-2.py”,在文件“6-2.py”的代碼編輯窗口創(chuàng)建類Commodity及定義其屬性和方法?!救蝿?wù)實施】classCommodity:#定義類的公有屬性,公共屬性在類外部可以直接進(jìn)行訪問

commodityCode="100009177374"#定義公有類屬性:商品編號

commodityName="華為Mate30Pro5G"#定義公有類屬性:商品名稱

commodityPrice=6899.00#定義公有類屬性:價格

produceDate="2020/1/18"#定義公有類屬性:生產(chǎn)日期【任務(wù)實施】

#定義類的私有屬性,私有屬性在類外部無法直接進(jìn)行訪問

__code="65559628242"__name="海信(Hisense)100L7"__price=79999.00__date="2020/1/6"defprintLine(self):print("--------------------------------------------------")【任務(wù)實施】

defprintCommodityPublic(self):print("商品編號:"+modityCode)print("商品名稱:"+modityName)print("價格:"+"{:.2f}“.format(modityPrice))print("生產(chǎn)日期:"+duceDate)【任務(wù)實施】針對創(chuàng)建的類Commodity實施對類屬性、實例屬性的修改與訪問。1.創(chuàng)建類對象創(chuàng)建兩個類對象goods1和goods2的代碼如下:goods1=Commodity()goods2=Commodity()【任務(wù)實施】

2.通過類名稱Commodity調(diào)用類的實例方法輸出類初始定義的公有屬性對應(yīng)代碼如下:Commodity.printCommodityPublic(goods1)【任務(wù)實施】3.使用類名稱Commodity修改類的公有屬性對應(yīng)代碼如下:CmodityCode="12563157"CmodityName="給Python點顏色青少年學(xué)編程"CmodityPrice=59.80CduceDate="2019/9/1"【任務(wù)實施】4.直接使用類名稱Commodity輸出類修改之后的公有屬性對應(yīng)代碼如下:print("商品編號:"+CmodityCode)print("商品名稱:"+CmodityName)print("價格:"+"{:.2f}".format(CmodityPrice))print("生產(chǎn)日期:"+CduceDate)【任務(wù)實施】5.使用類實例名稱goods1輸出類修改之后的公有屬性對應(yīng)代碼如下:print("商品編號:"+modityCode)print("商品名稱:"+modityName)print("價格:"+"{:.2f}".format(modityPrice))print("生產(chǎn)日期:"+duceDate)【任務(wù)實施】6.使用第2個實例名稱goods2輸出類修改之后的公有屬性對應(yīng)代碼如下:print("商品編號:"+modityCode)print("商品名稱:"+modityName)print("價格:"+"{:.2f}".format(modityPrice))print("生產(chǎn)日期:"+duceDate)【任務(wù)實施】7.通過類名稱Commodity調(diào)用類的實例方法輸出類修改之后的公有屬性對應(yīng)代碼如下:Commodity.printCommodityPublic(goods1)8.通過實例名稱goods1調(diào)用類的實例方法輸出類修改之后的公有屬性對應(yīng)代碼如下:goods1.printCommodityPublic()【任務(wù)實施】9.第2次修改類的公有屬性對應(yīng)代碼如下:modityCode="4939815"modityName="格力KFR-72LW/NhIbB1W"modityPrice=9149.00duceDate="2019/8/8"【任務(wù)實施】10.直接使用類名稱Commodity輸出類第2次修改之后的公有屬性對應(yīng)代碼如下:print("商品編號:"+CmodityCode)print("商品名稱:"+CmodityName)print("價格:"+"{:.2f}".format(CmodityPrice))print("生產(chǎn)日期:"+CduceDate)【任務(wù)實施】11.使用第1個類實例名稱goods1輸出類第2次修改之后的公有屬性對應(yīng)代碼如下:print("商品編號:"+modityCode)print("商品名稱:"+modityName)print("價格:"+"{:.2f}".format(modityPrice))print("生產(chǎn)日期:"+duceDate)【任務(wù)實施】12.使用第2個實例名稱goods2輸出類第2次修改之后的公有屬性對應(yīng)代碼如下:print("商品編號:"+modityCode)print("商品名稱:"+modityName)print("價格:"+"{:.2f}".format(modityPrice))print("生產(chǎn)日期:"+duceDate)【任務(wù)實施】13.通過類名稱Commodity調(diào)用類的實例方法輸出類第2次修改之后的公有屬性對應(yīng)代碼如下:Commodity.printCommodityPublic(goods1)其運(yùn)行結(jié)果如下所示。Commodity.printCommodityPublic(goods2)【任務(wù)實施】14.分別通過類實例名稱goods1、goods2調(diào)用類的實例方法

輸出類第2次修改之后的公有屬性對應(yīng)代碼如下:goods1.printCommodityPublic()goods2.printCommodityPublic()快樂學(xué)習(xí)!高效學(xué)習(xí)!祝學(xué)習(xí)進(jìn)步!【任務(wù)6-3】定義與訪問類的實例方法【任務(wù)描述】(1)在項目Unit06創(chuàng)建Python程序文件6-3.py。(2)在程序文件6-3.py中創(chuàng)建類對象goods。(3)在程序文件6-3.py中調(diào)用多個類的實例方法,

輸出所需數(shù)據(jù)?!救蝿?wù)實施】在PyCharm項目Unit06中創(chuàng)建Python程序文件6-3.py。在程序文件6-3.py中編寫程序代碼,實現(xiàn)所需功能。編寫創(chuàng)建類Commodity及其定義私有屬性、實例方法的代碼?!救蝿?wù)實施】classCommodity:#定義類的私有屬性,私有屬性在類外部無法直接進(jìn)行訪問

__code="100009177374"__name="華為Mate30Pro5G"__price=6899.00__date="2020/1/18"【任務(wù)實施】

#定義實例方法

defgetCode(self):returnself.__codedefgetName(self):returnself.__name【任務(wù)實施】defgetPrice(self):returnself.__pricedefgetDate(self):returnself.__datedefprintLine(self):print("--------------------------------")【任務(wù)實施】

#輸出字段名

defprintField(self):print("{:^9s}".format("商品編號"),end="")print("{:^20s}".format("商品名稱"),end="")print("{:^8s}".format("價格"),end="")print("{:^9s}".format("生產(chǎn)日期"))【任務(wù)實施】Commodity實施以下各項操作。1.創(chuàng)建類對象goods創(chuàng)建一個類對象goods,代碼如下:goods=Commodity()【任務(wù)實施】2.調(diào)用多個類的實例方法,輸出所需數(shù)據(jù)調(diào)用多個類的實例方法,輸出所需數(shù)據(jù)的代碼如下:goods.printLine()#使用類的實例方法輸出商品數(shù)據(jù)goods.printField()print("{:^10s}".format(goods.getCode()),"{:^21s}".format(goods.getName()),end="")print("{:^10.2f}".format(goods.getPrice()),"{:^7s}".format(goods.getDate()))goods.printLine()【任務(wù)實施】程序6-3.py的運(yùn)行結(jié)果如下圖所示??鞓穼W(xué)習(xí)!高效學(xué)習(xí)!祝學(xué)習(xí)進(jìn)步!【任務(wù)6-4】定義與訪問類方法、實例方法和靜態(tài)方法【任務(wù)描述】(1)在項目Unit06創(chuàng)建Python程序文件6-4.py。(2)在程序文件6-4.py中創(chuàng)建類對象goods。(3)在程序文件6-4.py中使用類的實例名稱goods

調(diào)用類的實例方法和類方法。(4)在程序文件6-4.py中使用類名稱Commodity

直接調(diào)用類的實例方法和類方法。(5)在程序文件6-4.py中使用類的靜態(tài)方法輸出商品數(shù)據(jù)。【任務(wù)實施】在PyCharm項目Unit06中創(chuàng)建Python程序文件6-4.py。在程序文件6-4.py中編寫程序代碼,實現(xiàn)所需功能?!救蝿?wù)實施】classCommodity:#定義類的私有屬性,私有屬性在類外部無法直接進(jìn)行訪問

__code="100009177374"__name="華為Mate30Pro5G"__price=6899.00__date="2020/1/18“

defprintLine(self):print("---------------------------------------")【任務(wù)實施】

#輸出字段名

defprintField(self):print("{:^9s}".format("商品編號"),end="")print("{:^18s}".format("商品名稱"),end="")print("{:^8s}".format("價格"),end="")print("{:^9s}".format("生產(chǎn)日期"))【任務(wù)實施】@classmethoddefprintData(cls):print("{:^10s}".format(cls.__code),end="")print("{:^20s}".format(cls.__name),end="")print("{:^11.2f}".format(cls.__price),end="")print("{:^7s}".format(cls.__date))【任務(wù)實施】

@staticmethoddefprintDataStatic():print("{:^10s}".format(Commodity.__code),end="")print("{:^20s}".format(Commodity.__name),end="")print("{:^11.2f}".format(Commodity.__price),end="")print("{:^7s}".format(Commodity.__date))【任務(wù)實施】針對創(chuàng)建的類Commodity實施以下各項操作。1.創(chuàng)建類對象goods創(chuàng)建一個類對象goods,代碼如下:goods=Commodity()【任務(wù)實施】2.使用類的實例名稱goods調(diào)用類的實例方法和類方法對應(yīng)代碼如下:goods.printLine()goods.printField()goods.printData()goods.printLine()【任務(wù)實施】其運(yùn)行結(jié)果如下圖所示?!救蝿?wù)實施】3.使用類名稱Commodity直接調(diào)用類的實例方法和類方法對應(yīng)代碼如下:Commodity.printLine(goods)Commodity.printField(goods)Commodity.printData()Commodity.printLine(goods)【任務(wù)實施】4.使用類的靜態(tài)方法輸出商品數(shù)據(jù)對應(yīng)代碼如下:goods.printLine()goods.printField()Commodity.printDataStatic()goods.printLine()快樂學(xué)習(xí)!高效學(xué)習(xí)!祝學(xué)習(xí)進(jìn)步!【任務(wù)6-5】定義與調(diào)用類的構(gòu)造方法【任務(wù)描述】(1)在項目Unit06創(chuàng)建Python程序文件6-5.py。(2)在程序文件6-5.py定義與調(diào)用類的構(gòu)造方法?!救蝿?wù)實施】在PyCharm項目Unit06中創(chuàng)建Python程序文件6-5.py。在程序文件6-5.py中編寫程序代碼,實現(xiàn)所需功能。【任務(wù)實施】classCommodity:#定義類的公有屬性,基本屬性在類外部可以直接進(jìn)行訪問

#commodityCode=""#commodityName=""#commodityPrice=0.0#produceDate=""【任務(wù)實施】

#定義類的構(gòu)造方法

def__init__(self,code="",name="",price=0.0,date=""):#定義實例方法

modityCode=code#定義實例屬性:商品編號

modityName=name#定義實例屬性:商品名稱

modityPrice=price#定義實例屬性:價格

duceDate=date#定義實例屬性:生產(chǎn)日期【任務(wù)實施】defprintLine(self):print("----------------------------------------")#輸出字段名

defprintField(self):print("{:^9s}".format("商品編號"),end="")print("{:^18s}".format("商品名稱"),end="")print("{:^12s}".format("價格"),end="")print("{:^4s}".format("生產(chǎn)日期"))【任務(wù)實施】

defprintData(self):print("{:^10s}".format(modityCode),end="")print("{:^20s}".format(modityName),end="")print("{:^8.2f}".format(modityPrice),end="")print("{:^4s}".format(duceDate[0:4])+"-",end="")print("{:^2s}".format(duceDate[5:7])+"-",end="")print("{:^2s}".format(duceDate[8:]))【任務(wù)實施】針對創(chuàng)建的類Commodity實施以下各項操作。1.創(chuàng)建第1個類實例goods1,全部參數(shù)初始化代碼如下:goods1=Commodity("12550531","Python編程錦囊(全彩版)",79.80,"2019/06/01")【任務(wù)實施】2.通過第1個類實例goods1調(diào)用類實例方法輸出商品數(shù)據(jù)代碼如下:goods1.printLine()goods1.printField()goods1.printData()goods1.printLine()運(yùn)行結(jié)果如右圖所示。【任務(wù)實施】3.創(chuàng)建第2個類實例goods2,部分參數(shù)初始化代碼如下:goods2=Commodity("100009177374","華為Mate30Pro5G")【任務(wù)實施】4.通過第2個類實例goods2調(diào)用類實例方法輸出商品數(shù)據(jù)代碼如下:goods2.printLine()goods2.printField()goods2.printData()goods2.printLine()運(yùn)行結(jié)果如右圖所示?!救蝿?wù)實施】5.創(chuàng)建第3個類實例goods3,所有參數(shù)都未初始化代碼如下:goods3=Commodity()【任務(wù)實施】6.對第3個類實例goods3的屬性賦值代碼如下:modityCode="4939815"modityName="格力KFR-72LW/NhIbB1W"modityPrice=9149.00duceDate="2019/08/08"【任務(wù)實施】7.輸出3個類實例goods1、goods2、goods3的商品名稱代碼如下:print("商品名稱1:"+modityName)print("商品名稱2:"+modityName)print("商品名稱3:"+modityName)運(yùn)行結(jié)果如下:商品名稱1:Python編程錦囊(全彩版)商品名稱2:華為Mate30Pro5G商品名稱3:格力KFR-72LW/NhIbB1W【任務(wù)實施】8.通過第3個類實例goods3調(diào)用類實例方法輸出商品數(shù)據(jù)代碼如下:goods3.printLine()goods3.printField()goods3.printData()goods3.printLine()運(yùn)行結(jié)果如下圖所示??鞓穼W(xué)習(xí)!高效學(xué)習(xí)!祝學(xué)習(xí)進(jìn)步!【任務(wù)6-6】定義類Commodity和子類Book及其數(shù)據(jù)成員【任務(wù)描述】(1)在項目Unit06創(chuàng)建Python程序文件6-6.py。(2)在程序文件6-6.py中定義類Commodity

和子類Book及其屬性、方法。(3)應(yīng)用類的屬性與方法實現(xiàn)所需功能。【任務(wù)實施】在PyCharm項目Unit06中創(chuàng)建Python程序文件6-6.py。在程序文件6-6.py中編寫程序代碼,實現(xiàn)所需功能?!救蝿?wù)實施】classCommodity:#定義類的構(gòu)造方法

def__init__(self,code="",name="",price=0.0):modityCode=codemodityName=namemodityPrice=price【任務(wù)實施】

defprintLine(self):print("----------------------------------------------")defprintInfo(self,strInfo):print("{:^50s}".format(strInfo))【任務(wù)實施】

#輸出字段名

defprintField(self,endMark="\n"):print("{:^9s}".format("商品編號"),end="")print("{:^20s}".format("商品名稱"),end="")print("{:^12s}".format("價格"),end=endMark)【任務(wù)實施】

defprintData(self,endMark="\n"):print("{:^10s}".format(modityCode),end="")print("{:^21s}".format(modityName),end="")print("{:^8.2f}".format(modityPrice),end=endMark)【任務(wù)實施】#定義子類classBook(Commodity):def__init__(self,code="",name="",price=0.0,publisher="",editionOrder=1):Commodity.__init__(self,code,name,price)self.bookPublisher=publisherself.bookEdition=editionOrder【任務(wù)實施】

defprintField(self):Commodity.printField(self,"")print("{:^7s}".format("出版社名稱"),end="")print("{:^6s}".format("版次"))defprintData(self):Commodity.printData(self,"")print("{:^10s}".format(self.bookPublisher),end="")print("{:^6d}".format(self.bookEdition))【任務(wù)實施】

#定義子類的實例方法

defsetCode(self,code):modityCode=codedefsetName(self,name):modityName=namedefsetPrice(self,price):modityPrice=pricedefsetPublisher(self,publisher):self.bookPublisher=publisherdefsetEdition(self,edition):self.bookEdition=edition【任務(wù)實施】針對創(chuàng)建的類Commodity和子類Book實施以下各項操作。1.創(chuàng)建第1個類實例goods1,全部參數(shù)初始化創(chuàng)建第1個類實例goods1,全部參數(shù)初始化,其代碼如下:goods1=Book("12528944","PPT設(shè)計從入門到精通",79.00,"人民郵電出版社",1)【任務(wù)實施】2.通過第1個類實例goods1調(diào)用類實例方法輸出圖書數(shù)據(jù)代碼如下:goods1.printLine()goods1.printField()goods1.printData()goods1.printLine()運(yùn)行結(jié)果如右圖所示?!救蝿?wù)實施】3.創(chuàng)建第2個類實例goods2,部分參數(shù)初始化代碼如下:goods2=Book("12563157","給Python點顏色青少年學(xué)編程")4.通過第2個類實例goods2調(diào)用類的實例方法給類的部分屬性賦值代碼如下:goods2.setPrice(59.80)goods2.setPublisher("人民郵電出版社")goods2.setEdition(1)【任務(wù)實施】5.通過第2個類實例goods2調(diào)用類實例方法輸出圖書數(shù)據(jù)代碼如下:goods2.printLine()goods2.printField()goods2.printData()goods2.printLine()運(yùn)行結(jié)果如右圖所示?!救蝿?wù)實施】6.創(chuàng)建第3個類實例goods3,所有參數(shù)都未初始化代碼如下:goods3=Book()【任務(wù)實施】7.通過第3個類實例goods3調(diào)用類的實例方法給類的全部屬性賦值代碼如下:goods3.setCode("12550531")goods3.setName("Python編程錦囊(全彩版)")goods3.setPrice(79.80)goods3.setPublisher("吉林大學(xué)出版社")goods3.setEdition(1)【任務(wù)實施】8.通過第3個類實例goods3調(diào)用類實例方法輸出圖書數(shù)據(jù)代碼如下:goods3.printLine()goods3.printField()goods3.printData()goods3.printLine()運(yùn)行結(jié)果如右圖所示??鞓穼W(xué)習(xí)!高效學(xué)習(xí)!祝學(xué)習(xí)進(jìn)步!【任務(wù)6-7】完整定義與使用1個父類Commodity和2個子類(Book、Handset)【任務(wù)描述】(1)在項目Unit06創(chuàng)建Python程序文件6-7.py。(2)在程序文件6-7.py中完整定義與使用1個父類Commodity和2個子類(Book、Handset)。(3)綜合應(yīng)用類的屬性與方法計算與輸出應(yīng)付金額、返現(xiàn)金額、優(yōu)惠金額、運(yùn)費和實付金額。【任務(wù)實施】在PyCharm項目Unit06中創(chuàng)建Python程序文件6-7.py。在程序文件6-7.py中編寫程序代碼,實現(xiàn)所需功能。編寫定義父類Commodity及其多個屬性、方法的代碼?!救蝿?wù)實施】classCommodity:#定義父類的構(gòu)造方法

def__init__(self,code="",name="",price=0.0,quantity=0):modityCode=codemodityName=namemodityPrice=pricemodityQuantity=quantity【任務(wù)實施】

#定義父類的實例屬性

@propertydefcode(self):returnself._code@code.setterdefcode(self,value):self._code=value【任務(wù)實施】

@propertydefname(self):returnself._name@name.setterdefname(self,value):self._name=value【任務(wù)實施】

@propertydefprice(self):returnself._price@price.setterdefprice(self,value):self._price=value【任務(wù)實施】

@propertydefquantity(self):returnself._quantity@quantity.setterdefquantity(self,value):ifnotisinstance(value,int):raiseValueError('購買數(shù)量應(yīng)為正整數(shù)!')self._quantity=value【任務(wù)實施】

@propertydefcalculateAmount(self):amount=modityPrice*modityNumberreturnamount@propertydefamount(self):amount=self.price*self.numberreturnamount【任務(wù)實施】defprintInfo(self,strInfo):print("{:^50s}".format(strInfo))defprintField(self,endMark="\n"):print("{:^9s}".format("商品編號"),end="")print("{:^20s}".format("商品名稱"),end="")print("{:^12s}".format("價格"),end=endMark)【任務(wù)實施】defprintData(self,endMark="\n"):print("{:^10s}".format(self.code),end="")print("{:^21s}".format(),end="")print("{:^8.2f}".format(self.price),end=endMark)【任務(wù)實施】編寫定義子類Book及其多個屬性、方法的代碼。#定義第1個子類BookclassBook(Commodity):def__init__(self,code="",name="",price=0.0,publisher="",editionOrder=1):Commodity.__init__(self,code,name,price)self.bookPublisher=publisherself.bookEdition=editionOrder【任務(wù)實施】

#定義子類Book的屬性

@propertydefpublisher(self):returnself._publisher@publisher.setterdefpublisher(self,value):self._publisher=value【任務(wù)實施】

@propertydefedition(self):returnself._edition@edition.setterdefedition(self,value):self._edition=value【任務(wù)實施】defprintField(self):Commodity.printField(self,"")print("{:^7s}".format("出版社名稱"),end="")print("{:^16s}".format("版次"))defprintData(self):Commodity.printData(self,"")print("{:^10s}".format(self.publisher),end="")print("{:^6d}".format(self.edition))【任務(wù)實施】

@classmethoddefgetDiscountPrice(cls,rank,price):ifrank=="PLUS":discountPrice=price*0.88else:ifrank=="FAN":discountPrice=price*0.90else:discountPrice=price*0.92returndiscountPrice【任務(wù)實施】@classmethoddefgetDiscount(cls,number,price):originalTotal=number*pricediscount=0iforiginalTotal>=299:discount=15.00returndiscount【任務(wù)實施】@classmethoddefgetCashback(cls,number,price):originalTotal=number*pricereduction=int(originalTotal/100)ifreduction>0:cashback=reduction*50returncashback【任務(wù)實施】@classmethoddefgetCarriage(cls,payable):#訂單金額<49,收取基礎(chǔ)運(yùn)費6元;訂單金額≥49,收取基礎(chǔ)運(yùn)費0元

ifpayable<49:carriage=6.00else:carriage=0.00returncarriage【任務(wù)實施】

#輸出結(jié)算數(shù)據(jù)

@classmethoddefprintSettlementData(cls,*data):print("應(yīng)付金額:¥"+"{:.2f}".format(data[0]))print("運(yùn)費:¥"+"{:.2f}".format(data[1]))print("返現(xiàn)金額:-¥"+"{:.2f}".format(data[2]))print("優(yōu)惠金額:-¥"+"{:.2f}".format(data[3]))print("實付金額:¥"+"{:.2f}".format(data[4]))【任務(wù)實施】編寫子類Handset及其多個屬性、方法的代碼。#定義第2個子類HandsetclassHandset(Commodity):def__init__(self,code="",name="",price=0.0,resolution="",screenSize=""):#在子類中使用supper()函數(shù)調(diào)用父類的__init__()方法super().__init__(self,code,name,price)self.handsetResolution=resolutionself.handsetScreenSize=screenSize【任務(wù)實施】

#定義子類Handset的屬性

@propertydefresolution(self):returnself._resolution@resolution.setterdefr

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論