2022-07-25 Python學(xué)習(xí)筆記13

一、總體計(jì)劃:

開始時(shí)間:2022-07-13

計(jì)劃完成時(shí)間:2022-08-12

計(jì)劃每日完成量:15頁/天,或0.7章/天

二、今日(2022-07-25)學(xué)習(xí)進(jìn)度:

今日已學(xué)習(xí)25頁,完成1章,日任務(wù)達(dá)標(biāo)。

總體進(jìn)度256頁/460頁,13章/20章。

三、學(xué)習(xí)筆記:

1、,面向?qū)ο缶幊淌亲钣行У能浖帉懛椒ㄖ?。在面向?qū)ο缶幊讨?,你編寫表示現(xiàn)實(shí)世界中的事物和情景的類,并基于這些類來創(chuàng)建對(duì)象。編寫類時(shí),你定義一大類對(duì)象都有的通用行為?;陬悇?chuàng)建對(duì)象時(shí),每個(gè)對(duì)象都自動(dòng)具備這種通用行為,然后可根據(jù)需要賦予每個(gè)對(duì)象獨(dú)特的個(gè)性。使用面向?qū)ο缶幊炭赡M現(xiàn)實(shí)情景,其逼真程度達(dá)到了令你驚訝的地步。根據(jù)類來創(chuàng)建對(duì)象被稱為實(shí)例化實(shí)例化 ,這讓你能夠使用類的實(shí)例。

2、創(chuàng)建Dog類,根據(jù)Dog類創(chuàng)建的每個(gè)實(shí)例都將存儲(chǔ)名字和年齡。我們賦予了每條小狗蹲下(sit() )和打滾(roll_over() )的能力。

class Dog():
     """一次模擬小狗的簡單嘗試"""

    def __init__(self, name, age):          
        """初始化屬性name和age"""
        self.name = name
        self.age = age
    
    def sit(self):          
        """模擬小狗被命令時(shí)蹲下"""
        print(self.name.title() + " is now sitting.")
   
     def roll_over(self):          
        """模擬小狗被命令時(shí)打滾"""
        print(self.name.title() + " rolled over!")

類中的函數(shù)稱為方法,方法_init_() 是一個(gè)特殊的方法,每當(dāng)你根據(jù)Dog 類創(chuàng)建新實(shí)例時(shí),Python都會(huì)自動(dòng)運(yùn)行它。在這個(gè)方法的名稱中,開頭和末尾各有兩個(gè)下劃線,這是一種約定,旨在避免Python默認(rèn)方法與普通方法發(fā)生名稱沖突。

我們將方法_init_() 定義成了包含三個(gè)形參:self 、name和age 。在這個(gè)方法的定義中,形參self 必不可少,還必須位于其他形參的前面。為何必須在方法定義中包含形參self 呢?因?yàn)镻ython調(diào)用這個(gè)_init_() 方法來創(chuàng)建Dog 實(shí)例時(shí),將自動(dòng)傳入實(shí)參self 。每個(gè)與類相關(guān)聯(lián)的方法調(diào)用都自動(dòng)傳遞實(shí)參self ,它是一個(gè)指向?qū)嵗旧淼囊?,讓?shí)例能夠訪問類中的屬性和方法。我們創(chuàng)建Dog 實(shí)例時(shí),Python將調(diào)用Dog 類的方法_init_() 。我們將通過實(shí)參向Dog() 傳遞名字和年齡;self 會(huì)自動(dòng)傳遞,因此我們不需要傳遞它。每當(dāng)我們根據(jù)Dog 類創(chuàng)建實(shí)例時(shí),都只需給最后兩個(gè)形參(name 和age )提供值。

3、根據(jù)類創(chuàng)建實(shí)例,我們讓Python創(chuàng)建一條名字為'willie' 、年齡為6 的小狗。遇到這行代碼時(shí),Python使用實(shí)參'willie' 和6 調(diào)用Dog 類中的方法_init_() 。方法_init_() 創(chuàng)建一個(gè)表示特定小狗的示例,并使用我們提供的值來設(shè)置屬性name 和age 。方法_init_() 并未顯式地包含return 語句,但Python自動(dòng)返回一個(gè)表示這條小狗的實(shí)例。我們將這個(gè)實(shí)例存儲(chǔ)在變量my_dog 中。在這里,命名約定很有用:我們通??梢哉J(rèn)為首字母大寫的名稱(如Dog )指的是類,而小寫的名稱(如my_dog )指的是根據(jù)類創(chuàng)建的實(shí)例。

my_dog = Dog('willie', 6)

print("My dog's name is " + my_dog.name.title() + ".")
print("My dog is " + str(my_dog.age) + " years old.")

my_dog.sit()
my_dog.roll_over()

輸出結(jié)果:
My dog's name is Willie.
My dog is 6 years old.

Willie is now sitting.
Willie rolled over!
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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