self?和?The?Zen?of?Python?的理解

為什么需要self

? 這兩天coding的時候想到一個問題媚值,Python中class為什么需要self作為內(nèi)部方法的第一個入?yún)ⅲ棵黠@的解釋是解決class內(nèi)符號作用域的問題藐握。類內(nèi)的變量和函數(shù)靴拱,全局變量和函數(shù)非常明確的區(qū)分開,理解起來也很清晰猾普。至于編譯器實現(xiàn)上袜炕,不應該有什么繞不過去的問題。

但self從coding角度看有點傻抬闷,不夠簡潔妇蛀,即便編輯器可以提供幫助自動補出還是有點傻。所以還需要進一步從 Python 的設計理念看看笤成。<zen of the Python> 中有一條可以用self做腳注

Explicit is better than implicit,

顯示/明確的 勝過 隱含的眷茁。self雖然傻炕泳,但傻得明確,避免一些隱含的錯誤上祈。

實際上 Python 不必像c++那么富有技巧性培遵,技巧性對于高手可以極有價值,但普遍而言未必是好事情登刺。換言之籽腕,越貼近業(yè)務的代碼技巧性應該越低;越抽象工具性代碼纸俭,可以充滿抽象和技巧皇耗。


再讀一遍 the zen of Python的原文:

The Zen of Python , by Tim Peter

Beautiful is better than ugly.

? ? 注: 明顯難看的東西,比如違反clean code的東西揍很。

Explicit is better than implicit.

? ? 注: self

Simple is better than complex.
Complex is better than complicated.

? ? 注: 這兩句很有意思郎楼,復雜性如果是本質(zhì)的,就用復合窒悔,組合的方式來實現(xiàn)呜袁,要能拆的開,合得上简珠,組合式編程阶界,樂高模樣。否則復雜性是無法管理的。

Flat is better than nested.

? ? 注: 扁平比嵌套的好膘融,能扁平當然別分級嵌套要好芙粱。但存在問題是扁平的模塊間關(guān)系不能太復雜,網(wǎng)狀的就別扁平了托启。

Sparse is better than dense.

? ? 注: 稀疏勝于質(zhì)密宅倒,應該指的是模塊或元素間的關(guān)系,稀疏是清晰的屯耸,質(zhì)密就是上文說的網(wǎng)狀結(jié)構(gòu)拐迁。其實就是高內(nèi)聚低耦合的另一個說法。

Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.


Now is better than never. Although never is often better than *right* now.

? 注: 這個說的很有道理疗绣,我讀來感覺痛入骨髓线召。雖說做比不做好,但瞎做還不如不做多矮。行成于思缓淹。思重于行。特別是做研發(fā)的塔逃,不想讯壶,不設計,直接動手湾盗》茫可怕的很。

If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.

注: 難以理解的格粪,講都講不明白的實現(xiàn)躏吊,肯定不是好主意。有點像在解釋 Beautiful is better than ugly.

Namespaces are one honking great idea -- let's do more of those!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帐萎,一起剝皮案震驚了整個濱河市比伏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疆导,老刑警劉巖赁项,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異是鬼,居然都是意外死亡肤舞,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門均蜜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來李剖,“玉大人,你說我怎么就攤上這事囤耳「菟常” “怎么了偶芍?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長德玫。 經(jīng)常有香客問我匪蟀,道長,這世上最難降的妖魔是什么宰僧? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任材彪,我火速辦了婚禮,結(jié)果婚禮上琴儿,老公的妹妹穿的比我還像新娘段化。我一直安慰自己,他們只是感情好造成,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布显熏。 她就那樣靜靜地躺著,像睡著了一般晒屎。 火紅的嫁衣襯著肌膚如雪喘蟆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天鼓鲁,我揣著相機與錄音蕴轨,去河邊找鬼。 笑死骇吭,一個胖子當著我的面吹牛尺棋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绵跷,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼成福!你這毒婦竟也來了碾局?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤奴艾,失蹤者是張志新(化名)和其女友劉穎净当,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蕴潦,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡像啼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了潭苞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忽冻。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖此疹,靈堂內(nèi)的尸體忽然破棺而出僧诚,到底是詐尸還是另有隱情遮婶,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布湖笨,位于F島的核電站旗扑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏慈省。R本人自食惡果不足惜臀防,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望边败。 院中可真熱鬧袱衷,春花似錦、人聲如沸放闺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怖侦。三九已至篡悟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間匾寝,已是汗流浹背搬葬。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留艳悔,地道東北人急凰。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像猜年,于是被迫代替她去往敵國和親抡锈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容