python中类型错误、计数不采用关键字的错误怎么改_Python设计错误
你要求鏈接或其他來源,但實際上沒有。這些信息散布在許多不同的地方。什么才是真正構成設計錯誤的因素?您是只考慮語言定義中的語法和語義問題,還是包括諸如平臺和標準庫問題以及特定實現問題等實用問題?您可以說,從性能的角度來看,Python的動態性是一個設計錯誤,因為它很難實現一個簡單高效的實現,而且很難(我沒有說完全不可能)生成一個包含代碼完成、重構和其他好東西的IDE。同時,你也可以為動態語言的優點辯護。
也許開始考慮這個問題的一種方法是看the language changes from Python 2.x to 3.x。當然,有些人會爭辯說,print作為一個函數是不方便的,而另一些人則認為這是一個改進。總的來說,并沒有那么多的變化,而且大多數變化都是非常小和微妙的。例如,map()和filter()返回迭代器而不是列表,range()的行為類似于xrange()過去,而dict方法類似于dict.keys()返回視圖而不是列表。還有一些與整數相關的變化,其中一個大的變化是二進制/字符串數據處理。現在是文本和數據,文本總是Unicode。有幾個語法變化,但它們更多的是關于一致性,而不是修改整個語言。
從這個角度來看,至少從2.x開始,Python就在語言(語法和語義)級別上設計得非常好。你可以一直爭論基于縮進的塊語法,但我們都知道這不會導致任何結果。。。;-)
另一種方法是查看其他Python實現試圖解決的問題。它們中的大多數以某種方式解決性能問題,一些解決平臺問題,還有一些添加或更改語言本身以更有效地解決某些類型的任務。Unladen swallow希望通過優化運行時字節編譯和執行階段,顯著提高Python的速度。Stackless通過添加諸如微線程和微線程的結構、允許雙向微線程通信的通道、協作或搶先運行微線程的調度以及暫停和恢復微線程執行的串行化,為高效、重線程應用程序添加功能。Jython允許在Java平臺上使用Python,在.Net平臺上使用IronPython。Cython是一種Python方言,它允許調用C函數和聲明C類型,允許編譯器從Cython代碼生成有效的C代碼。{a7}將隱式靜態類型引入到Python中,并為獨立程序或擴展模塊生成C++。PyPy在Python的一個子集中實現Python,并更改一些實現細節,例如添加垃圾收集而不是引用計數。其目的是讓Python語言和實現開發由于使用了更高級的語言而變得更加高效。Py V8通過V8 JavaScript引擎連接Python和JavaScript——可以說它解決了一個平臺問題。Psyco是一種特殊的JIT,它動態地為當前正在處理的數據生成運行代碼的特殊版本,這可以提高Python代碼的速度,而無需編寫優化的C模塊。
其中,可以通過查看PEP-3146來說明Python的當前狀態,它概述了Unladen Swallow如何合并到CPython中。這個PEP被接受了,因此Python開發人員可以判斷目前最可行的方向是什么。注意,它關注的是性能,而不是語言本身。
所以我真的想說,Python的主要設計問題是性能領域的問題,但這些基本上都是任何動態語言都必須面對的挑戰,Python語言家族和實現正在嘗試o解決問題。至于像Javascript: the good parts中所列的那種徹底的設計錯誤,我認為需要更明確地定義“錯誤”的含義,但您可能需要查看以下的想法和意見:
總結
以上是生活随笔為你收集整理的python中类型错误、计数不采用关键字的错误怎么改_Python设计错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微型计算机接口与技术期末,微机原理与接口
- 下一篇: websocket python爬虫_p