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

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

習(xí)題 44: 給你的游戲打分

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


這節(jié)練習(xí)的目的是檢查評估你的游戲。也許你只完成了一半,卡在那里沒有進(jìn)行下去,也許你勉強(qiáng)做出來了。不管怎樣,我們將串一下你應(yīng)該弄懂的一些東西, 并確認(rèn)你的游戲里有使用到它們。我們將學(xué)習(xí)如何用正確的格式構(gòu)建 class,使 用 class 的一些通用習(xí)慣,另外還有很多的“書本知識”讓你學(xué)習(xí)。 為什么我會讓你先行嘗試,然后才告訴你正確的做法呢?因?yàn)閺默F(xiàn)在開始你要學(xué) 會“自給自足”,以前是我牽著你前行,以后就得靠你自己了。

后面的習(xí)題我只會告訴你你的任務(wù),你需要自己去完成,在你完成后我再告訴你如何可以改進(jìn)你的作業(yè)。 一開始你會覺得很困難并且很不習(xí)慣,但只要堅持下去,你就會培養(yǎng)出自己解決 問題的能力。你還會找出創(chuàng)新的方法解決問題,這比從課本中拷貝解決方案強(qiáng)多 了。

函數(shù)的風(fēng)格?

以前我教過的怎樣寫好函數(shù)的方法一樣是適用的,不過這里要添加幾條:?

  • ? 由于各種各樣的原因,程序員將 class (類)里邊的函數(shù)稱作 method (方法)。很大程度上這只是個市場策略(用來推銷 OOP),不過如果你把它們稱作“函數(shù)”的話, 是會有啰嗦的人跳出來糾正你的。如果你覺得他們太煩了,你可以告訴他們從數(shù)學(xué)方面演示一下“函數(shù)”和“方法”究竟有什么不同,這樣他們會很快閉嘴的。?

  • ? 在你使用 class 的過程中,很大一部分時間是告訴你的 class 如何“做事情”。給這 些函數(shù)命名的時候,與其命名成一個名詞,不如命名為一個動詞,作為給 class 的 一個命令。就和 list 的 pop (拋出)函數(shù)一樣,它相當(dāng)于說:“嘿,列表,把這東西給我 pop 出去?!彼拿植皇?remove_from_end_of_list ,因?yàn)榧词顾墓δ艿拇_是這樣,這一串字符也不是一個命令。?

  • ? 讓你的函數(shù)保持簡單小巧。由于某些原因,有些人開始學(xué)習(xí) class 后就會忘了這一 條。?

?類的風(fēng)格?

  • ? 你的 class 應(yīng)該使用 “camel case(駝峰式大小寫)”,例如你應(yīng)該使用 SuperGoldFactory 而不是 super_gold_factory。?

  • ? 你的 __init__ 不應(yīng)該做太多的事情,這會讓 class 變得難以使用。?

  • ? 你的其它函數(shù)應(yīng)該使用 “underscore format(下劃線隔詞)”,所以你可以 寫 my_awesome_hair, 而不是 myawesomehair 或者 MyAwesomeHair 。?

  • ? 用一致的方式組織函數(shù)的參數(shù)。如果你的 class 需要處理 users、dogs、 和 cats,就保持這個次序(特別情況除外)。如果一個函數(shù)的參數(shù)是 (dog, cat, user) ,另一個的是 (user, cat, dog) ,這會讓函數(shù)使用 起來很困難。?

  • ? 不要對全局變量或者來自模組的變量進(jìn)行重定義或者賦值,讓這些東西自顧自就行了。?

  • ? 不要一根筋式地維持風(fēng)格一致性,這是思維力底下的妖怪嘍啰做的事情。 一致性是好事情,不過愚蠢地跟著別人遵從一些白癡口號是錯誤的行為 ——這本身就是一種壞的風(fēng)格。好好為自己照想把。?

  • ? 永遠(yuǎn)永遠(yuǎn)都使用 class Name(object) 的方式定義 class,否則你會碰到大麻煩。?

代碼風(fēng)格?

  • ? 為了以方便他人閱讀,為自己的代碼字符之間留下一些空白。你將會看到一些很差的程序員,他們寫的代碼還算通順,但字符之間沒有任何空間。這種風(fēng)格在任何編程語言中都是壞習(xí)慣,人的眼睛和大腦會通過空白和垂直對齊的位置來掃描和區(qū)隔視覺元素,如果你的代碼里沒有任何空白,這相當(dāng)于為你的代碼上了迷彩裝。如果一段代碼你無法朗讀出來,那么這段代碼的可讀性可能就有問題。如你找不到讓某個東西易用的方法,試著也朗讀出來。這樣不僅會逼迫你慢速而且真正仔細(xì)閱讀過去,還會幫你找到難讀的段落,從而知道那些代碼的易讀性需要作出改進(jìn)。?

  • ? 學(xué)著模仿別人的風(fēng)格寫 Python 程序,直到哪天你找到你自己的風(fēng)格為止。?

  • ? 一旦你有了自己的風(fēng)格,也別把它太當(dāng)回事。程序員工作的一部分就是和別人的代碼打交道,有的人審美就是很差。相信我,你的審美某一方面一定也很差,只是你從未意識到而已。?

  • ? 如果你發(fā)現(xiàn)有人寫的代碼風(fēng)格你很喜歡,那就模仿他們的風(fēng)格。?

好的注釋?

  • ? 有程序員會告訴你,說你的代碼需要有足夠的可讀性,這樣你就無需寫注釋了。他們會以自己接近官腔的聲音說“所以你永遠(yuǎn)都不應(yīng)該寫代碼注釋?!边@些人要么是一些顧問型的人物,如果別人無法使用他們的代碼,就會付更多錢給他們讓他們解決問題。要么他們能力不足,從來沒有跟別人合作過。別理會這些人,好好寫你的注解。?

  • ? 寫注解的時候,描述清楚為什么你要這樣做。代碼只會告訴你“這樣實(shí)現(xiàn)”,而不會告訴你“為什么要這樣實(shí)現(xiàn)”,而后者比前者更重要。?

  • ? 當(dāng)你為函數(shù)寫文檔注解的時候,記得為別的代碼使用者也寫些東西。你不需要狂寫一大堆,但一兩句話謝謝這個函數(shù)的用法還是很有用的。?

  • ? 最后要說的是,雖然注解是好東西,太多的注解就不見得是了。而且注解也是需要維護(hù)的,你要盡量讓注解短小精悍一語中的,如果你對代碼做了更改,記得檢查并更新相關(guān)的注解,確認(rèn)它們還是正確的。?

為你的游戲評分?

現(xiàn)在我要求你假裝成是我,板起臉來,把你的代碼打印出來,然后拿一支紅筆, 把代碼中所有的錯誤都標(biāo)出來。你要充分利用你在本章以及前面學(xué)到的知識。等你批改完了,我要求你把所有的錯誤改對。這個過程我需要你多重復(fù)幾次,爭取 找到更多的可以改進(jìn)的地方。使用我前面教過的方法,把代碼分解成最細(xì)小的單元一一進(jìn)行分析。 這節(jié)練習(xí)的目的是訓(xùn)練你對于細(xì)節(jié)的關(guān)注程度。等你檢查完自己的代碼,再找一 段別人的代碼用這種方法檢查一遍。把代碼打印出來,檢查出所有代碼和風(fēng)格方面的錯誤,然后試著在不改壞別人代碼的前提下把它們修改正確、 這周我要求你的事情就是批改和糾錯,包含你自己的代碼和別人的代碼,再沒有 別的了。這節(jié)習(xí)題難度還是挺大,不過一旦你完成了任務(wù),你學(xué)過的東西就會牢牢記在腦中。


習(xí)題 44: 給你的游戲打分的評論 (共 條)

分享到微博請遵守國家法律
措美县| 广宗县| 石柱| 怀集县| 黄石市| 社旗县| 广德县| 奉贤区| 抚宁县| 虹口区| 任丘市| 湖南省| 秭归县| 肇东市| 高阳县| 绍兴县| 定州市| 黄梅县| 孝义市| 鄂伦春自治旗| 林州市| 赤峰市| 临猗县| 建平县| 新昌县| 张家界市| 逊克县| 莱西市| 阿克陶县| 桓台县| 新乡市| 平江县| 和田县| 上犹县| 日喀则市| 平湖市| 娄底市| 隆子县| 龙陵县| 邯郸县| 天等县|