昨晚看Python的入門教程,花了五六個小時

來源:互聯網
上載者:User

從晚上八九點開始,一直持續到淩晨1點半,看完了Python的官方入門教程(中譯版),其中的小例子大部分也都逐一運行過了。還好,比較順利。

其實早在一年之前,就開始嘗試接觸Python,還買了一本小書(後來知道此書“抄”的不好)。大概是因為當時類C語言(C/C++/Java)的文法對我影響太深,導致我對部分Python文法極為排斥,從而在一年多的時間內再也沒有接觸Python。我當時認為Python“不爽”的理由有:

  • if / for / while 之後必須有冒號(既然有了縮排排列,冒號是必須的嗎?)
  • elif,很醜陋的關鍵字,為什麼不是 elseif 或 else if?省掉兩個字母是簡化了編程還是增加了複雜性?(當然我也知道還有其它幾個程式設計語言也使用類似elif的關鍵字,我只是不明白。由此聯想到Linux中的usr,很顯然是user簡化而來的,哪怕一個字母也要省,“現在看來”不是很好笑嗎?當然考慮的“當時”的情況是可以理解的。)
  • try 語句中 except 和 finally 不能同時存在。我知道C++沒有finally,Object Pascal與Python類似,但Java和C#等後進語言都允許except和finally同時存在。Python作為“動態”指令碼語言,為什麼不能給使用者提供更友好的文法?
  • 引入的 __init__ 等固定名稱,讓人覺得不爽。
  • 對中文支援不好(這一點只是道聽途說,沒有切身體會)
  • 定義類方法時,第一個參數必須是self,為什麼一定要有這個參數?象C++/Java/C#那樣更簡捷一些吧?
  • 不存在“私人的”類成員,要靠使用者的“自覺”來操持資料獨立/相關性,這不是很搞笑嗎?
  • Tkinter中widget.bind(event, callback),第一個參數竟然是文本,我的天,用(類似C++中的)枚舉或宏數值不是更有意義並且不易出錯嗎?(此項不屬Python核心,可以忽略之)
  • 又是Tkinter模組中,竟然用文本來表示顏色(如"gray75"),徹底無言!(此項也不屬Python核心)

  我對python的理解是“動態指令碼語言”,動態,指令碼,那麼自然應該對編程者更友好。Python應該把複雜的一面留給自己,把方便的一面交給使用者。象 try-catch-finalyy,self,私人類成員等,並非不能實現。如果以“保持語言簡捷性”為理由拒絕之,似乎不妥,畢竟這是以犧牲對使用者的友好性為前提的。也不要告訴我Python已經很友好了,並舉出眾所周知的“縮排排列”例子,很友好了就不能再更進一步?——暫不要說並非所有的人都認可“縮排排列”。此外,Python核心並不象Lua那樣小巧,多增大一點尺寸對自身影響應該不大。

  一年前,我對Python的結論是:“Python是一種很有名氣的動態語言,但看了之後,很多地方都有不爽的感覺,所以它也‘不過如此’!”

  一年之前感覺“極為不爽”之處,一年之後回頭去看,卻又不是那麼介意了——文法嘛,僅僅是文法而已。呵呵,是我進步了?還是要求降低了?還是時間化解了一切?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.