3.練習(xí)題3
封裝 繼承 多態(tài)
要求:
大家是如何理解單繼承的?
答:只繼承一個(gè)父類.
請(qǐng)寫出單繼承的格式?
class<類名>(父類名)
<語(yǔ)句>
請(qǐng)寫出一個(gè)car基類,BMW類繼承于car類,基類中有init方法(包含name,color)和run方法.
#定義一個(gè)基類
class Car(obj):
def __init__(self, name, color="黑色")
self.name = name
self.color = color
def run(self):
print("%s在馳騁----"%self.name)
#定義一個(gè)子類,繼承基類
class BMW(Car):
def setName(self, newName)
self.name = newName
如果子類中沒(méi)有定義init方法,但是要實(shí)例化一個(gè)對(duì)象,那此時(shí)會(huì)調(diào)用父類的構(gòu)造方法嗎?
答:會(huì)
如果子類重寫了init方法,那么在實(shí)例化對(duì)象的時(shí)候,你覺(jué)得會(huì)調(diào)用哪個(gè)構(gòu)造方法,是父類的還是子類的?
答:子類的
當(dāng)子類重寫init方法,在實(shí)例化對(duì)象的時(shí)候,如果想要調(diào)用父類的init方法該怎么辦?
答:手動(dòng)調(diào)用
類中的私有屬性能通過(guò)對(duì)象直接訪問(wèn)嗎?
答:不能
要想訪問(wèn)類中的私有屬性該怎么辦?
答:提供訪問(wèn)私有屬性的方法.
基類中的私有屬性能被子類繼承嗎?
答:私有的屬性、方法,不會(huì)被子類繼承,也不能被訪問(wèn).
那么私有屬性存在的意義是什么?
答:一般情況下,私有的屬性、方法都是不對(duì)外公布的,往往用來(lái)做內(nèi)部的事情,起到安全的作用.
提示:
繼承語(yǔ)法:class 派生類名(基類名)/基類名寫在括號(hào)里,基本類是在類定義的時(shí)候,在元組之中指明的。
4.練習(xí)題4
對(duì)self的 理解
判斷下面一段代碼的運(yùn)行結(jié)果
要求:
class Test:
def prt(self):
print(self)
print(self.__class__)
t = Test()
t.prt()
運(yùn)行結(jié)果: 1--當(dāng)前對(duì)象的地址
2--self.class 所指向的類
提示:
上述代碼運(yùn)行的結(jié)果不唯一.
只要知道self是當(dāng)前對(duì)象的地址即可.
而且要知道self.class是指向的類.
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
