Python 10-1——修改屬性的值

? ? ? ? 再進(jìn)一步,指定參數(shù)默認(rèn)值的情況下,有時(shí)還要對(duì)參數(shù)值進(jìn)行改變,比如汽車?yán)锍坛鰪S還要測(cè)試,運(yùn)輸?shù)鹊炔豢赡苁?就需要修改屬性的值??赏ㄟ^(guò)兩中方法對(duì)屬性值進(jìn)行修改:

一、直接修改屬性值;二、通過(guò)一定的方法修改屬性值。

? ? ? ? 未修改前、默認(rèn)屬性值如下代碼:

一、直接修改屬性值:創(chuàng)建實(shí)例后。通過(guò)給實(shí)例里程屬性直接賦值的方式實(shí)現(xiàn)修改。在初始化描述汽車屬性時(shí),相當(dāng)于把定義參數(shù)和給參數(shù)賦值并添加到屬性中以此實(shí)現(xiàn)。在類中這樣的屬性是存在的,創(chuàng)建實(shí)例后自動(dòng)傳遞值,也就可以直接進(jìn)行修改。代碼如下:

二、通過(guò)方法實(shí)現(xiàn)屬性值的修改:

1、通過(guò)直接在類中更新的方式:定義一個(gè)更新里程數(shù)據(jù)的方法,并對(duì)其傳遞想要改變的值。在創(chuàng)建實(shí)例后,對(duì)實(shí)例使用更新方法并傳遞值。

汽車?yán)锍讨荒茉黾?,為了防止回調(diào)里程以次充好,還需要設(shè)置條件禁止回調(diào)里程。里程數(shù)據(jù)不小于0時(shí),將數(shù)據(jù)賦給屬性,反之則打印一條警告信息。

2、通過(guò)方法對(duì)屬性的值進(jìn)行遞增,比如出廠增加了多少里程;二手車購(gòu)買(mǎi)到登記增加了多少里程等。定義一個(gè)增加值的方法,并對(duì)其傳遞里程數(shù)據(jù)。同樣增加值也不能為負(fù)以防篡改數(shù)據(jù)。設(shè)置條件,增加里程不為負(fù)時(shí),里程數(shù)據(jù)相加;反之,打印一條警告信息,顯示里程數(shù)據(jù)錯(cuò)誤。在實(shí)例中調(diào)用方法,看是否符合預(yù)期。

通過(guò)增加方法后可實(shí)現(xiàn)屬性值的修改和限定,但是依然可以通過(guò)直接賦值的方式改變里程數(shù)據(jù)。任然有回調(diào)的可能性。

同樣也可以Dog類來(lái)實(shí)現(xiàn)改名和年齡屬性值的修改。

狗的年齡有界限并不是無(wú)線大,所以也有條件限制。

以下是原代碼,對(duì)打印項(xiàng)稍作改動(dòng),讓輸出更直觀明了。請(qǐng)忽略文檔字符串的錯(cuò)誤,實(shí)在不想改了。

? ? ? ? 通過(guò)創(chuàng)建實(shí)例,對(duì)名稱屬性直接賦值和通過(guò)定義改名方法并在實(shí)例中調(diào)用實(shí)現(xiàn)名稱的改變;定義年齡的增加方法并設(shè)置限制條件,在實(shí)例中調(diào)用方法實(shí)現(xiàn)年齡的遞增。

超過(guò)年齡的限制條件時(shí),打印提示消息。

? ? ? ? 一般狗狗的壽命在13—18年間,寵物狗大概在15年左右。怎樣增加條件,讓不管創(chuàng)建的實(shí)例年齡是多少都可以滿足限制條件,并且年齡遞增時(shí)不超出限制條件且年齡只能遞增不能回調(diào)。

回調(diào)的情況:

創(chuàng)建實(shí)例不符合條件時(shí):

判別增加值不符合條件時(shí):

正常情況:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容