Skip to content
WONGCW 網誌
  • 首頁
  • 論壇
  • 微博
  • 壁紙下載
  • 免費圖床
  • 視頻下載
  • 聊天室
  • SEO工具
  • 支援中心
  • 表格製作
  • More
    • 在線名片
    • 網頁搜索
    • 天氣預報
    • 二維碼生成器
    • WordPress 插件及主題下載
  • Search Icon

WONGCW 網誌

記錄生活經驗與點滴

Python太糟糕了?開發者總結了8大原因

Python太糟糕了?開發者總結了8大原因

2018-12-21 Comments 0 Comment

有開發者發文表達了他覺得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 -o screencapture.exe screencapture.c -lscreencapture

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

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

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

詳情查看原文:

https://www.hackerfactor.com/blog/index.php?/archives/825-8-Reasons-Python-Sucks.html

分享此文:

  • 分享到 Twitter(在新視窗中開啟)
  • 按一下以分享至 Facebook(在新視窗中開啟)
  • 分享到 WhatsApp(在新視窗中開啟)
  • 按一下以分享到 Telegram(在新視窗中開啟)
  • 分享到 Pinterest(在新視窗中開啟)
  • 分享到 Reddit(在新視窗中開啟)
  • 按一下即可分享至 Skype(在新視窗中開啟)
  • 按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟)
  • 點這裡列印(在新視窗中開啟)

相關


網絡資訊

Post navigation

PREVIOUS
微軟對外披露Google工程師發現的IE漏洞攻擊者可以控制受影響系統
NEXT
為上市做準備大眾緊湊型EV ID Neo在南非展開路測

發表迴響 取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料。

More results...

Generic filters
Exact matches only
Search in title
Search in content
Search in excerpt
Filter by 分類
網站公告
Featured
限時免費
ESET NOD32
WINDOWS 10 &11 INSIDER PREVIEW
Windows 軟件下載
系統軟件
辦公軟件
圖像處理
影音媒體
網絡軟件
應用軟件
Mac 軟件下載
安卓軟件下載
網絡資訊
Mac資訊
Linux資訊
VPS資訊
NASA資訊
金融資訊
WhatsApp Stickers教學
WordPress資訊
WeChat資訊
PHP資訊
Plesk資訊
TensorFlow
教學資源
開源程序
網頁工具
SEO工具
醫療健康
旅遊及消閒
其他資訊
Content from
Content to
2018 年 12 月
一 二 三 四 五 六 日
 12
3456789
10111213141516
17181920212223
24252627282930
31  
« 11 月   1 月 »

分類

  • 網站公告
  • 限時免費
  • ESET NOD32
  • WINDOWS 10 &11 INSIDER PREVIEW
  • Windows 軟件下載
  • 系統軟件
  • 辦公軟件
  • 圖像處理
  • 影音媒體
  • 網絡軟件
  • 應用軟件
  • Mac 軟件下載
  • 安卓軟件下載
  • 網絡資訊
  • Mac資訊
  • Linux資訊
  • VPS資訊
  • NASA資訊
  • WhatsApp Stickers教學
  • WordPress資訊
  • WeChat資訊
  • PHP資訊
  • Plesk資訊
  • TensorFlow
  • 教學資源
  • 開源程序
  • 網頁工具
  • SEO工具
  • 醫療健康
  • 旅遊及消閒
  • 其他資訊

彙整

近期文章

  • 博主硬核拆解特斯拉Model 3剎車助力泵展示工作原理 2023-03-25
  • 小彭汽車向小鵬汽車道歉盤點那些神級模仿的老年代步車 2023-03-25
  • 氣候變化在全球範圍內增加了人類與野生動物的衝突 2023-03-25
  • 《聖鬥士星矢》真人電影預告5月12日北美上映 2023-03-25
  • 《三體》動畫今日正式完結豆瓣評分僅獲3.8分 2023-03-25
  • 美妝品牌露詩聯動任天堂推出馬里奧兄弟主題沐浴露 2023-03-25
  • GPT-4滿分第一名通過大廠模擬面試微軟154頁研究刷屏 2023-03-25
  • 微軟警告:新推AI工具不得使用必應數據庫否則限制訪問! 2023-03-25
  • 聯網之後的ChatGPT 已經遠不止“iPhone時刻”那麼簡單 2023-03-25
  • 時隔9年賈躍亭的FF91終於要開始生產了 2023-03-25

熱門文章與頁面︰

  • 貝貝BiliBili – 在線一鍵下載B站視頻,可解析播放!
  • 打車叫到特斯拉不會開門很尷尬?官方介紹開關門方法
  • DP vs HDMI 誰才是遊戲玩家最佳選擇?
  • ESET NOD32 LICENSE KEY (UPDATED 2023-01-17)
  • Explorer Patcher:讓Windows 11恢復Windows 10的行為特徵
  • 世界上有多少個國家
  • Google Chrome瀏覽器意外出現Status_Access_Violation錯誤而崩潰
  • Win10休眠檔案hiberfil.sys怎麼徹底刪除?
  • Office 2013-2019 C2R Install v7.0.4 正式版-Office 2013/2016/2019自定義組件安裝工具
  • Windows及OFFICE激活密鑰+電話激活教程–自用

投遞稿件

歡迎各界人士投遞稿件到admin@wongcw.com

請提供以下資料:

1.你的名字

2.你的電郵

3.分類目錄

4.文章標題

5.文章摘要

6.文章內容

7.文章來源

 

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

快帆

MALUS

極度掃描

DMCA.com Protection Status

WONGCW 網誌

  • 免責聲明
  • 捐助我們
  • ThemeNcode PDF Viewer
  • ThemeNcode PDF Viewer SC
  • Events

服務器提供

本站使用之服務器由ikoula提供。

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

© 2023   All Rights Reserved.