精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

開發者發文表達了他覺得 Python不行的8大原因

電子工程師 ? 來源:lq ? 2018-12-25 11:36 ? 次閱讀

開發者發文表達了他覺得Python 不行的 8 大原因。

作者對每一項“缺點”都進行了分析,全文洋洋灑灑,概括起來 8 個原因分別是:

1、版本不兼容

Python 3 與 Python 2不完全兼容。作者以 Perl 語言和創造了世界上早期個人電腦的 Commodore 為例,分析了缺乏向后兼容性和分離版本是如何導致失敗的。

2、安裝問題

運行 apt、yum 與 rpm 等工具可以獲取并安裝大多數軟件包的最新代碼,但是在使用 apt-get install python 或者 pip install python 安裝 Python 的時候你不知道實際被安裝的是哪個版本,而這可能與你所需要的代碼不兼容。安裝時需要指定 Python 版本。

3、縮進規則

乍一看,Python 代碼似乎非常易讀,但是在大型代碼庫中并不是這樣。Pyhon 的四格縮進允許深度嵌套,但是嵌套太多層的話會導致代碼在文本編輯器中換行,變得混亂。而長函數和長條件操作可能使得難以匹配語法的開始與結束。給調試帶來了很大的困難。

4、代碼導入方式

Python 的導入方式import 允許引入整個模塊、模塊的一部分或模塊中的特定函數。作者認為 Python 這種導入規則使得查找可導入的列表并不直觀。C 中可以直接查看 .h 頭文件,但是 Python 需要使用 python -v 列出引用所在位置,之后搜索該列表中每個目錄和子目錄中的每個文件。

此外,Python 的導入機制還允許用戶重命名導入的代碼,作者認為重命名模塊非常適合小腳本,但是對于長程序來說真的很糟糕,因為它會影響代碼的可讀性和長期支持。

而更糟糕的地方在于,對于大多數語言來說,導入代碼就只是導入代碼,如果存在帶有構造函數的全局對象,那么一些語言會執行代碼,但這通常被認為是一種不好的做法。而許多 Python 模塊在導入期間就運行初始化函數,這導致你不清楚什么正在運行,不知道它在做什么,需要花很多時間來追蹤。

5、命名法

作者認為 Python 沒有使用通用并且專業的術語描述語言本身。比如在其它所有語言中,數組都稱為 arrays,但是在 Python 中,它被稱為 lists;關聯數組有時稱為 hash(Perl),但 Python 稱之為 dictionary。代碼庫命名方法也是這樣,像 PyPy、PyPi、NumPy、SciPy、SymPy、PyGtk、Pyglet 與 PyGame 這些庫,它們名稱中的“Py”有時放在開頭,有時又放在后邊,沒有統一。而類似 matplotlib、nose、Pillow 和 SQLAlchemy 的一些常見庫甚至直接放棄了“Py”這種命名約定。

作者將 Python 描述為“具有可怕且不一致的命名約定的庫的集合”。

6、怪癖

每種語言或多或少都有自己的怪癖,但是 Python 比其它語言都多。以字符串的操作為例,在 Python 中,單引號和雙引號之間沒有區別。但是,如果想要字符串跨行,則需要使用三引號 """string"""或 ```string```;如果想使用二進制文件,那么需要使用b'binary' 或 r'raw';有時需要使用 str(string) 將字符串轉換為字符串,或使用 string.encode('utf-8') 將其轉換為 utf8。

7、按對象引用傳遞變量

大多數編程語言都按值傳遞函數參數,但是 Python 默認使用 pass-by-object-reference 參數執行函數,這意味著更改源變量可能會使引用值改變。這是程序、函數和和面向對象編程語言之間的重大差異之一,如果每個變量都是通過對象引用傳遞的,并且對變量的任何更改都會在任何地方更改引用,那么可以直接使用全局變量來處理所有變量。但是全局變量的弊端是有目共睹的。

8、本地名稱

gcc-oscreencapture.exescreencapture.c-lscreencapture

假如在使用名為“libscreencapture.so”的 C 庫測試截屏程序,可以調用自己的程序“screencapture.c”并編譯成“screencapture.exe”。

但是在 Python 中這么做是不行的。Python 假定你首先要導入的是本地代碼,那么如果你有一個名為“screencapture.py”的程序使用“import screencapture”,它將導入自己而不是系統庫。

作者最后還表示,通常他會辯證地去評論一個東西,他覺得 Python 確實有一些不錯的庫,比如 BeautifulSoup、NumPy 和 TensorFlow,但是他真的沒法列出關于 Python 其它好的方面,因為他真的認為 Python 很糟糕。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳遞函數
    +關注

    關注

    0

    文章

    102

    瀏覽量

    13931
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84467

原文標題:Python 太糟糕了?有個開發者總結了 8 個理由

文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    成功的軟件開發者需要掌握人際技能的3個原因

    的溝通交流造成影響。軟件開發者并不一定能夠理解這一點。相反,他們會抱怨客戶,覺得:我們的客戶一直在抱怨進度慢。根本就不知道我們其實已經非常努力,做什么事情都需要時間啊。當然
    發表于 12-12 14:39

    開發者福音!谷歌云APP引擎開始支持Python 3.7

    `Python表示很開心!谷歌云推出了第二代App Engine引擎標準runtime,這是對平臺的重大升級,允許開發者使用最新版本流行語言、框架和庫輕松運行web應用程序。想要嘗鮮的小伙伴們,猛戳
    發表于 08-14 10:12

    OpenHarmony開源開發者成長計劃-職業開發者挑戰賽 開發資料匯總

    OpenHarmony開源開發者成長計劃-職業開發者挑戰賽 開發資料匯總OpenHarmony開發者文檔設備開發文檔應用
    發表于 04-24 13:44

    喜報|HarmonyOS開發者社區連獲業內獎項,持續深耕開發者生態

    臨近年末,各大平臺陸續揭曉年度榜單,表彰具備強大影響力與做出突出貢獻的優秀項目與團隊,而HarmonyOS開發者社區作為技術分享,學習和展示的平臺,輸出高質量技術文章百余篇,連續獲得業內各大
    發表于 01-19 14:32

    谷歌不止有開發者大會 另外還帶來了開發者網站

    北京時間12月8日上午消息,今日谷歌開發者大會在北京召開,同時專門針對中國的谷歌開發者網站已經上線。谷歌針對中國開發者的網站域名是cn結尾,網站內含谷歌
    發表于 12-08 14:47 ?486次閱讀

    iPhone 8發布 2大原因看空蘋果

    9.13凌晨iPhone 8發布 還帶了個iPhone X,帶著劉海..... iPhone 8發布 大原因看空蘋果. 2
    的頭像 發表于 09-14 11:28 ?880次閱讀

    Python 轉向 Go語言的9大原因和3大缺點

    轉用一門新語言通常是一項大決策,尤其是當你的團隊成員中只有一個使用過它時。今年 Stream 團隊的主要編程語言從 Python 轉向 Go。本文解釋其背后的九大原因以及如何做好這
    發表于 06-17 07:40 ?6803次閱讀

    2018年受到眾多開發者關注的7個Python類庫

    幾個還不太知名的庫引起了Python開發者的關注。
    的頭像 發表于 10-02 09:30 ?4754次閱讀

    一位開發者講述無法忍受Python8大原因

    Python社區已經對這個術語進行標準化,盡管它沒出現在Python手冊中。文檔中的示例說可以使用TAB、“TAB+1空格”等等。但是社區卻對4個空格有著喪心病狂的偏執!因此,除非你打算永遠不向其他任何人展示你寫的代碼,否則每個縮進都要使用四個空格。
    的頭像 發表于 12-20 09:14 ?3871次閱讀

    Python開發者最容易忽略的10個要點

    小錯誤,這些錯誤都很容易避免,本文總結了Python開發者最容易犯的10個錯誤,一起來看下,不知你中槍沒有。 1.濫用表達式作為函數參數默認值 P
    的頭像 發表于 01-02 10:13 ?976次閱讀

    2021 OPPO開發者大會:異構計算開發者價值

    2021 OPPO開發者大會:異構計算開發者價值 2021 OPPO開發者大會上介紹異構計算開發者價值。 責任編輯:haq
    的頭像 發表于 10-27 11:10 ?1798次閱讀
    2021 OPPO<b class='flag-5'>開發者</b>大會:異構計算<b class='flag-5'>開發者</b>價值

    2021 OPPO開發者大會:小布開發者平臺生態

    2021 OPPO開發者大會:小布開發者平臺生態 2021 OPPO開發者大會上介紹小布開發者平臺生態。 責任編輯:haq
    的頭像 發表于 10-27 14:33 ?2324次閱讀
    2021 OPPO<b class='flag-5'>開發者</b>大會:小布<b class='flag-5'>開發者</b>平臺生態

    2021 OPPO開發者大會:OPPO滿足開發者需求

    2021 OPPO開發者大會:OPPO滿足開發者需求 2021 OPPO開發者大會上介紹開發者需求以及OPPO可提供的資源。 責任編輯:h
    的頭像 發表于 10-27 14:40 ?3267次閱讀
    2021 OPPO<b class='flag-5'>開發者</b>大會:OPPO滿足<b class='flag-5'>開發者</b>需求

    如何使用lambda表達式提升開發效率?

    Java8 的一個大亮點是引入 Lambda 表達式,使用它設計的代碼會更加簡潔。當開發者在編寫 Lambda 表達式時,也會隨之被編譯成一個函數式接口。
    發表于 08-24 10:25 ?283次閱讀

    華為云開發者桌面全新發布 CodeArts IDE for Python,極致優雅云原生開發體驗

    近日,華為云正式發布 CodeArts IDE for Python,這是一款內置華為自研 Python 語言服務,提供智能編程、靈活調試能力的可擴展桌面開發工具,為華為云開發者提供卓
    的頭像 發表于 05-10 00:27 ?1208次閱讀
    華為云<b class='flag-5'>開發者</b>桌面全新發布 CodeArts IDE for <b class='flag-5'>Python</b>,極致優雅云原生<b class='flag-5'>開發</b>體驗