最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

習題 42: 物以類聚

2023-08-27 17:00 作者:薄荷糖鳶  | 我要投稿


雖說將函數(shù)放到字典里是很有趣的一件事情,你應該也會想到“如果 Python 能自動為你做這件事情該多好”。事實上也的確有,那就是 class 這個關(guān)鍵字。你可以使用 class 創(chuàng)建更棒的“函數(shù)字典”,比你在上節(jié)練習中做的強大多了。

Class (類)有著各種各樣強大的功能和用法,但本書不會深入講這些內(nèi)容,在這里, 你只要你學會把它們當作高級的“函數(shù)字典”使用就可以了。 用到“class”的編程語言被稱作“Object Oriented Programming(面向?qū)ο缶幊蹋?語言。這是一種傳統(tǒng)的編程方式,你需要做出“東西”來,然后你“告訴”這些東西去完成它們的工作。類似的事情你其實已經(jīng)做過不少了,只不過還沒有意識到而已。記得你做過的這個吧:


其實你這里已經(jīng)使用了 class。``stuff`` 這個變量其實是一個 list class (列 表類)。而 ' '.join(stuff) 里調(diào)用函數(shù) join 的字符串 ' '(就是一個空格) 也是一個 class —— 它是一個 string class (字符串類)。到處都是 class! 還有一個概念是 object(物件),不過我們暫且不提。當你創(chuàng)建過幾個 class 后 就會學到了。你怎樣創(chuàng)建 class 呢?和你創(chuàng)建 ROOMS 的方法差不多,但其實更 簡單:


你看到參數(shù)里的 self 了吧?你知道它是什么東西嗎?

對了,它就是 Python 創(chuàng) 建的額外的一個參數(shù),有了它你才能實現(xiàn) a.some_function()` 這種用法,這 時它就會把\ 前者翻譯成 ``some_function(a) 執(zhí)行下去。

為什么用 self 呢? 因為你的函數(shù)并不知道你的這個“實例”是來自叫 TheThing 或者別的名字的 class。所以你只要使用一個通用的名字 self 。這樣你寫出來的函數(shù)就會在任何情況下都能正常工作。 其實你可以使用 self 以外的別的字眼,不過如果你這樣做的話,你就會成為所有 Python 程序員的眾之矢的,所以還是隨大流的好。只有變態(tài)才會在這里亂改, 我教你的沒錯。對以后會讀到你的代碼的人好點兒,因為你現(xiàn)在的代碼 10 年以 后所有的代碼都會是一團糟。 接下來,看到 __init__ 函數(shù)了嗎?這就是你為 Python class 設置內(nèi)部變量的方式。

你可以使用 . 將它們設置到 self 上面。另外看到我們使用了 add_me_up() 為你創(chuàng)建的 self.number 加值。后面你可以看到我們怎樣可以使用這種方法為數(shù)字加值,然后打印出來。 Class 是很強大的東西,你應該好好讀讀相關(guān)的東西。盡可能多找些東西讀并且多多實驗。你其實知道它們該怎么用,只要試試就知道了。其實我馬上就要去練吉他了,所以我不會讓你寫練習了。你將使用 class 寫一個練習。 接下來我們將把習題 41 的內(nèi)容重寫,不過這回我們將使用 class:


你應該看到的結(jié)果?

這個版本的游戲和你的上一版效果應該是一樣的,其實有些代碼都幾乎一樣。比較一下兩版代碼,弄懂其中不同的地方,重點需要理解這些東西:?

  1. 怎樣創(chuàng)建一個 class Game(object) 并且放函數(shù)到里邊去。

  2. __init__ 是一個特殊的初始方法,可以預設重要的變量在里邊。

  3. 為 class 添加函數(shù)的方法是將函數(shù)在 class 下再縮進一階,class 的架構(gòu)就是通過 縮進實現(xiàn)的,這點很重要。?

  4. 你在函數(shù)里的內(nèi)容又縮進了一階。

  5. ?注意冒號的用法。?

  6. ?理解 self 的概念,以及它在 __init__ 、 play 、 death 里是怎樣使用的。

  7. 研究 play 里的 getattr 的功能,這樣你就能明白 play 所做的事情。其實你可 以手動在 Python 命令行實驗一下,從而弄懂它。?

  8. 最后我們怎樣創(chuàng)建了一個 Game ,然后通過 play() 讓所有的東西運行起來。?

加分習題?

  1. 研究一下 __dict__ 是什么東西,應該怎樣使用。

  2. 再為游戲添加一些房間,確認自己已經(jīng)學會使用 class 。

  3. 創(chuàng)建一個新版本,里邊使用兩個 class,其中一個是 Map ,另一個是 Engine 。

提示: 把 play 放到 Engine 里面。


習題 42: 物以類聚的評論 (共 條)

分享到微博請遵守國家法律
兴隆县| 敦煌市| 霍邱县| 育儿| 壤塘县| 时尚| 成都市| 西乡县| 汝阳县| 霍城县| 沂源县| 金秀| 南陵县| 福贡县| 辉县市| 文安县| 香河县| 长岭县| 泸西县| 昭觉县| 银川市| 四平市| 黎城县| 安岳县| 荃湾区| 瑞昌市| 仪征市| 阜新| 连平县| 鄱阳县| 青田县| 旌德县| 安宁市| 日土县| 凌海市| 繁峙县| 呼玛县| 饶阳县| 德保县| 广德县| 沙雅县|