一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一位開發(fā)者講述了他無(wú)法忍受Python的8大原因

DPVg_AI_era ? 來(lái)源:lq ? 2018-12-20 09:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作為機(jī)器學(xué)習(xí)程序員的首選編程語(yǔ)言,Python成為世界范圍內(nèi)最受大學(xué)生歡迎的編程語(yǔ)言。但凡事有例外,近日,一位開發(fā)者講述了他無(wú)法忍受Python的8大原因,引發(fā)網(wǎng)友大量回應(yīng)。

作為機(jī)器學(xué)習(xí)程序員的首選編程語(yǔ)言,Python近年來(lái)可謂如日中天,人氣連年暴漲。由于AI熱潮持續(xù)不斷,Python在今年更是取代Java,成為世界范圍內(nèi)最受大學(xué)生歡迎的編程語(yǔ)言。很多機(jī)器學(xué)習(xí)領(lǐng)域的教材、文章和技術(shù)文檔,給出代碼時(shí)會(huì)以Python作為示例語(yǔ)言,可見Python受歡迎程度之高。

Python具有上手快、門檻低、語(yǔ)法結(jié)構(gòu)相對(duì)簡(jiǎn)單等優(yōu)點(diǎn),初學(xué)者易入門、老手的二次學(xué)習(xí)成本也低,再加上機(jī)器學(xué)習(xí)任務(wù)上優(yōu)勢(shì)獨(dú)具,受熱捧簡(jiǎn)直是水到渠成的事。

但凡事有例外,東西再好也不可能人人都愛。

近日在hackerfactor上,一位名叫Neal Krawetz的人就撰文,指出了自己無(wú)法忍受Python的八大原因,把Python里里外外吐槽了一遍。

文章列出了作者認(rèn)為Python存在重大缺陷的八條理由,包括版本兼容性問題、安裝版本混亂、在程序關(guān)鍵字命名規(guī)則、常用庫(kù)命名規(guī)則上獨(dú)樹一幟,且缺乏一致性、賦值傳遞混亂、本地文件命名策略易出錯(cuò)等。

總之一通下來(lái),把Python貶得夠嗆。這篇文章在當(dāng)下Python大熱的背景下可算是一朵“奇葩“了??炊嗔薖ython贊歌是不是有點(diǎn)審美疲勞了?不妨換換口味。

原因1:版本之間不兼容

安裝Linux后,那么它很可能默認(rèn)會(huì)安裝多個(gè)版本的Python,可能有Python2和Python3,甚至更多零零碎碎的版本,如3.5或3.7。

這是有原因的:Python3與Python2不完全兼容,一些其他版本在這方面的缺陷也足夠明顯——向后兼容性不足(backwards compatibility,也稱為向下兼容性)。

所以Ubuntu同時(shí)安裝了Python2和Python3,因?yàn)檫@些版本的核心功能是不同的。

缺乏向后兼容和分離版本通常是走向衰敗的預(yù)警。Commodore創(chuàng)建了第一臺(tái)家用電腦(要遠(yuǎn)早于IBM PC或Apple之前)。但Commodore PET與隨后的Commodore CBM計(jì)算機(jī)并不兼容,而CBM與VIC-20,Commodore-64,Amiga等也不兼容。因此,用戶要么花費(fèi)大量時(shí)間將代碼從一個(gè)平臺(tái)導(dǎo)到另一個(gè)平臺(tái),要么就直接放棄了這個(gè)平臺(tái)——Commodore就是前車之鑒。當(dāng)用戶選擇放棄平臺(tái)時(shí),它就注定會(huì)消失。

同樣,Perl曾經(jīng)很受歡迎。但是當(dāng)Perl3問世時(shí),它并沒有完全向后兼容Perl2的代碼。接下來(lái)是Perl4。當(dāng)Perl5問世時(shí),很多人選擇轉(zhuǎn)向使用其他更穩(wěn)定的編程語(yǔ)言。所以今天,只有一小部分人還在積極使用Perl來(lái)維護(hù)現(xiàn)有的Perl項(xiàng)目,而其他任何基于Perl的重大新項(xiàng)目再也沒有出現(xiàn)過。

同樣,Python為每個(gè)版本設(shè)計(jì)了不同的代碼孤島。社區(qū)一直拖拽著這些舊版本,所以你最終也只能得到那些舊的、過時(shí)的Python代碼,因?yàn)闆]有人愿意花時(shí)間將它導(dǎo)到最新版本上。

據(jù)我所知,沒有人在Python2上創(chuàng)建新的代碼,但我們還讓它茍延殘喘著,因?yàn)闆]人將所需的代碼導(dǎo)到Python3.x. 在官方Python網(wǎng)站上,這些文檔被主動(dòng)維護(hù)并可用于Python 2.7、3.5、3.6和3.7——因?yàn)樗麄儫o(wú)法放棄舊代碼。Python就像編程語(yǔ)言的僵尸——行尸走肉般向前走。

原因2:安裝太太太太麻煩了

通常來(lái)說,你直接apt、yum、rpm后得到就是最新穩(wěn)定版。

但你如果'apt-get install python',就不知道是什么版本,可能與你需要的所有代碼都不兼容。所以你在安裝的時(shí)候需要指定Python版本。

有一個(gè)項(xiàng)目需要用Python3.5(當(dāng)時(shí)最新的版本),然而我的電腦上最終安裝了一大堆版本:Python2、Python2.6、Python3和Python3.5。兩個(gè)來(lái)自操作系統(tǒng),一個(gè)為了項(xiàng)目安裝,一個(gè)是因?yàn)槲野惭b了一些不相關(guān)的軟件。

盡管它們都是“Python”,但它們并非完全相同。

如果你想安裝Python的軟件包,你應(yīng)該使用“pip”(Pip代表“Pip Installs Packages”)。但是由于系統(tǒng)上有許多版本的Python,你必須記住使用正確版本的pip。否則,'pip'可能會(huì)運(yùn)行'pip2'而不是你需要的'pip3.7'。(如果名稱不存在,你需要指定pip3.7的實(shí)際安裝路徑。)

我被一個(gè)朋友告知我需要配置環(huán)境,以便所有東西都能使用Python 3.5。這種方法的確很有效,但沒有持續(xù)多久,因?yàn)槲议_始了另一個(gè)需要Python 3.6版本的項(xiàng)目。兩個(gè)并發(fā)項(xiàng)目有兩個(gè)不同版本的Python——emmmm,這有點(diǎn)一言難盡吧。

pip安裝程序?qū)⑽募旁谟脩舻谋镜啬夸浿?。你不能使用pip來(lái)安裝系統(tǒng)范圍的庫(kù),并且Gawd會(huì)阻止你犯下運(yùn)行'sudo pip'的錯(cuò)誤,因?yàn)檫@會(huì)搞砸整個(gè)電腦!

順便說一句,是誰(shuí)維護(hù)這些pip模塊?答案是社區(qū)。也就是說,沒有明確的所有者,也沒有強(qiáng)制性的責(zé)任所屬。今年早些時(shí)候,一個(gè)版本的PyPi有一個(gè)后門發(fā)生了SSH憑據(jù)盜竊,但我對(duì)此一點(diǎn)都不驚訝,因?yàn)樯鐓^(qū)存儲(chǔ)庫(kù)根本不值得相信。出于同樣的原因,我也不使用Node.js和npm。

原因3:令人頭疼的語(yǔ)法問題,作用域使用空格導(dǎo)致可讀性差

我是可讀代碼的堅(jiān)定信徒。乍一看,Python似乎非常易讀,而當(dāng)你開始制作大型代碼庫(kù),這種易讀性就會(huì)減弱了。

其他編程語(yǔ)言,像C, Java, JavaScript, Perl, and PHP,用{} 來(lái)表示作用域;List用()。Python用空格。如果你需要給一個(gè)復(fù)雜的代碼定義一個(gè)作用域,然后你縮進(jìn)了下面幾行代碼,當(dāng)縮進(jìn)終止后,作用域就終止了。

Python手冊(cè)說你可以使用任意數(shù)量的空格或制表符來(lái)定義范圍。但是,每次縮進(jìn)都要用四個(gè)空格!如果要縮進(jìn)兩次以進(jìn)行嵌套,那就得使用八個(gè)空格!

Python社區(qū)已經(jīng)對(duì)這個(gè)術(shù)語(yǔ)進(jìn)行標(biāo)準(zhǔn)化,盡管它沒出現(xiàn)在Python手冊(cè)中。文檔中的示例說可以使用TAB、“TAB+1空格”等等。但是社區(qū)卻對(duì)4個(gè)空格有著喪心病狂的偏執(zhí)!因此,除非你打算永遠(yuǎn)不向其他任何人展示你寫的代碼,否則每個(gè)縮進(jìn)都要使用四個(gè)空格。

當(dāng)我第一次看到Python代碼時(shí),我認(rèn)為使用縮進(jìn)來(lái)定義范圍似乎是個(gè)好主意。事實(shí)上,我太天真了,這簡(jiǎn)直是一個(gè)天大的缺點(diǎn)。

深度嵌套是可以進(jìn)行的,但每行代碼會(huì)變得很寬,不得不在文本編輯器中換行。長(zhǎng)函數(shù)和長(zhǎng)條件操作都可能讓開始與結(jié)束變得難以匹配。我可憐那些錯(cuò)誤計(jì)算空格數(shù)量(比如只輸了3個(gè)空格而不是四個(gè))的人,因?yàn)檫@樣的錯(cuò)誤需要數(shù)小時(shí)進(jìn)行調(diào)試和追蹤。

我debug代碼習(xí)慣沒有縮進(jìn),這樣我就可以快速瀏覽代碼,并在完成后輕松識(shí)別和刪除debug代碼。

但是用Python呢?縮進(jìn)錯(cuò)誤的話,都會(huì)報(bào)錯(cuò)。

原因4:特立獨(dú)行的加載庫(kù)方式

大多數(shù)編程語(yǔ)言都有一些方法可以包含其他代碼塊。對(duì)于C,它是“#include”。對(duì)于PHP,有'include','include_once','require'和'require_once'。而對(duì)于Python,則是“import”。

Python的import允許導(dǎo)入整個(gè)模塊、模塊的一部分或模塊中的特定功能。但查找導(dǎo)入代碼塊的方法卻很麻煩。使用C,直接看/usr/include/*.h就行了。但用Python?最好使用'python -v'列出所有位置,然后搜索該列表中每個(gè)目錄和子目錄中的每個(gè)文件。這真的很麻煩。

導(dǎo)入功能還允許用戶重命名導(dǎo)入的代碼,它們基本上定義了一個(gè)命名空間。乍一看,這似乎很不錯(cuò),但這最終會(huì)影響可讀性和長(zhǎng)期支持。重命名模塊非常適合小腳本,但對(duì)于大程序來(lái)說真的很糟糕。這樣的操作“import numpy as n”,應(yīng)該被打死。

但這不是最糟糕的部分。對(duì)于大多數(shù)語(yǔ)言,包含代碼真的只意味著包含代碼。而一些語(yǔ)言(如面向?qū)ο蟮腃 ++)則可以執(zhí)行代碼。類似地,一些PHP代碼可能會(huì)定義全局變量,因此一項(xiàng)import可以運(yùn)行代碼,但這通常被認(rèn)為是一種不好的做法。相比之下,許多Python模塊包含在導(dǎo)入期間運(yùn)行的初始化函數(shù)。你不知道什么在運(yùn)行,你不知道它在做什么,你甚至都沒察覺到。除非存在命名空間沖突,否則在這種情況下,你需要花很長(zhǎng)時(shí)間來(lái)查找原因。

原因5:關(guān)鍵字和庫(kù)命名“獨(dú)樹一幟”

在其他所有編程語(yǔ)言中,數(shù)組都稱為“array”。在Python中,數(shù)組被稱為“l(fā)ist”。在其他語(yǔ)言中,關(guān)聯(lián)數(shù)組有時(shí)稱為'hash'(Perl),但Python里叫做“dictionary”。 Python似乎沒有使用在計(jì)算機(jī)和信息科學(xué)領(lǐng)域的常用術(shù)語(yǔ)。

然后是庫(kù)的名稱??纯催@些名字吧,PyPy、PyPi、NumPy、SciPy,SymPy、PyGtk、Pyglet,PyGame ...(是的,前兩個(gè)名稱發(fā)音一模一樣,但是它們的功能和用途有很大區(qū)別。)我知道“py”代表Python。但這兩個(gè)字母就不能固定在庫(kù)的開頭或是末尾嗎?

而且一些常見的庫(kù)并沒有沿用這個(gè)所謂的“Py”命名約定。比如matplotlib、nose、Pillow和SQLAlchemy。雖然從一些命名上能夠看出庫(kù)的一些功能(比如“SQLAlchemy”包含SQL,所以它可能是一個(gè)SQL接口),但很多名稱只是隨機(jī)化的單詞。如果你事先并不知道“BeautifulSoup”是干什么用的,你能從名稱中看出它是一個(gè)HTML / XML解析器嗎?

(順便說一句,BeautifulSoup庫(kù)的說明文檔很完備,非常易于使用。如果每個(gè)Python模塊都這么好用,我也不會(huì)在這里吐槽這么多。但遺憾的是,這只是個(gè)例外,而不是常態(tài)。大多數(shù)Python庫(kù)的文檔都爛的要死。)

總的來(lái)說,我認(rèn)為Python對(duì)庫(kù)的命名非?;靵y,缺乏一致性的原則。我總覺得,開源項(xiàng)目的命名都存在這種規(guī)則混亂的問題。除非你了解這個(gè)項(xiàng)目,否則你從項(xiàng)目名字上根本看不出來(lái)。除非你知道要找的是什么,否則你很可能永遠(yuǎn)都無(wú)法找到想找的東西。從大多數(shù)Python庫(kù)的命名上看,我現(xiàn)在更加確信這個(gè)觀點(diǎn)了。

原因6:其他“獨(dú)樹一幟”之處略多

每種語(yǔ)言都有它的怪癖。在C語(yǔ)言中,使用&和*來(lái)訪問地址空間和值是奇怪的命名法。C也有“++”和 --"這樣的變量增減控制方式在Bash語(yǔ)言中,當(dāng)引用括號(hào)和正則表達(dá)式的句點(diǎn)等特殊字符時(shí),需要使用反斜杠。

JavaScript存在兼容性問題(并非每個(gè)瀏覽器都支持所有有用的功能)。但是,Python比我見過的任何其他語(yǔ)言的奇怪之處更多。以字符串為例:

?在C中,對(duì)字符串使用雙引號(hào),對(duì)字符使用單引號(hào)。

?在PHP和Bash中,兩種類型的引號(hào)都可以用于字符串。但是,使用雙引號(hào)時(shí)可以在字符串中嵌入變量。相比之下,使用單引號(hào)括起來(lái)的字符串屬于文字。任何類似嵌入式變量的名稱都不可擴(kuò)展。

?在JavaScript中,單引號(hào)和雙引號(hào)之間確實(shí)沒有區(qū)別。

?在Python中,單引號(hào)和雙引號(hào)之間沒有區(qū)別。但是,如果想讓字符串跨行,則需要使用三引號(hào)“”“string”“”或“''string'''。如果想使用二進(jìn)制文件,那么你需要用b(b'binary')或r(r'raw')來(lái)優(yōu)先選擇字符串。有時(shí)還需要使用str(string)進(jìn)行字符串轉(zhuǎn)換,或使用string.encode('utf-8')將其轉(zhuǎn)換為utf8。

如果你認(rèn)為=、==和===這些符號(hào)PHP和JavaScript中有點(diǎn)怪,那么等你在Python中使用引號(hào)時(shí)再說吧。

原因7:賦值方式怪異

大多數(shù)編程語(yǔ)言都按值傳遞函數(shù)參數(shù)。如果函數(shù)改變了值,則結(jié)果不會(huì)傳遞回調(diào)用代碼。但Python不一樣。 Python默認(rèn)使用pass-by-object-reference參數(shù)執(zhí)行函數(shù)。這意味著更改源變量可能最終會(huì)改變值。

這是面向程序、面向函數(shù)和面向?qū)ο缶幊陶Z(yǔ)言之間的重大差異之一。如果每個(gè)變量都是通過對(duì)象引用傳遞的,而且對(duì)變量的任何更改都會(huì)導(dǎo)致其他所有地方的變量值變化,那么其實(shí)也可以全部使用全局變量來(lái)處理所有內(nèi)容。使用不同的名稱調(diào)用同一個(gè)對(duì)象不會(huì)更改對(duì)象的值,因此實(shí)際上該對(duì)象就是全局的。C語(yǔ)言程序員有句老話,全局變量是邪惡的,不應(yīng)該使用。

在Python中,必須按值傳遞變量。“a = b”只是為同一個(gè)對(duì)象空間指定另一個(gè)名稱,并不會(huì)將b的值賦到a中。如果要賦值,則需要使用copy函數(shù)。通常格式是“a = b.copy()”。但是,請(qǐng)注意我說的是“通?!?。并非所有數(shù)據(jù)類型都能夠這樣賦值,部分功能可能不完整。這時(shí)需要使用一個(gè)名為“copy”的獨(dú)立庫(kù):“a = copy.deepcopy(b)”。

原因8:本地程序命名易混亂

根據(jù)使用的庫(kù)或函數(shù)來(lái)命名程序是一種常見的編程技術(shù)。比如,我正在使用名為“l(fā)ibscreencapture.so”的C語(yǔ)言庫(kù)測(cè)試屏幕捕獲程序,我調(diào)用的程序可能會(huì)命名為“screencapture.c”,編譯后命名為“screencapture.exe”。

如果使用C,Java,JavaScript,Perl,PHP等語(yǔ)言,這種命名方式很好用,因?yàn)槌绦蛘Z(yǔ)言可以很容易地將資源庫(kù)與本地程序區(qū)分開來(lái),因?yàn)楸舜说穆窂绞遣煌?。但是如果用的是Python,永遠(yuǎn)不要這樣命名。

為什么? Python總是假定用戶首先要導(dǎo)入本地代碼。如果我有一個(gè)名為“screencapture.py”的程序使用“importscreencapture”,那么它將導(dǎo)入自己而不是系統(tǒng)庫(kù)。至少,本地程序需要命名為“myscreencapture.py”才能避免這種錯(cuò)誤。

當(dāng)然了,吐槽了這么多,但其實(shí)Python并非一無(wú)是處。

Python是一種非常流行的語(yǔ)言,擁有數(shù)量龐大的使用者。我身邊有一些朋友非常喜歡Python,這是他們首選的編程語(yǔ)言。多年來(lái),我和他們討論過這些問題,每次他們都點(diǎn)頭表示同意。他們并不否認(rèn)Python確實(shí)存在這些問題,只是覺得這些缺點(diǎn)不足以讓他們拋棄Python。

我的朋友經(jīng)常在編程中將所有存在的非??岬腜ython庫(kù)統(tǒng)統(tǒng)引用。我也認(rèn)為一些庫(kù)確實(shí)非常有用。例如,BeautifulSoup是我用過的最好的HTML解析器之一,NumPy使得多維數(shù)組和復(fù)雜的數(shù)學(xué)過程更容易實(shí)現(xiàn),而TensorFlow則對(duì)于機(jī)器學(xué)習(xí)非常有用。但是,我不會(huì)因?yàn)橄矚gTensorFlow或SciPy,而在Python中創(chuàng)建一個(gè)單片程序。為了某些庫(kù)的便利性,放棄程序可讀性和可維護(hù)性,屬于得不償失。

一般來(lái)說,我在寫關(guān)于某個(gè)主題的負(fù)面批評(píng)文章時(shí),也會(huì)嘗試寫一些正面的東西。比如當(dāng)我寫FFmpeg的局限性時(shí),我也明確提到它是最好的視頻處理庫(kù)。但我這里寫不出關(guān)于Python的什么優(yōu)點(diǎn)了,因?yàn)槲艺娴挠X得Python很爛。

此文一發(fā),在評(píng)論區(qū)引發(fā)了激烈的爭(zhēng)論:

“是你不懂Python”

Mario Abarca

你的這些問題可以總結(jié)為一點(diǎn):你不喜歡Python因?yàn)樗虲風(fēng)格不一樣

版本不兼容不是bug,是特性;我就覺得沒人維護(hù)的東西就不應(yīng)該再用了

用虛擬環(huán)境安裝不同的python版本而不是安裝在同一個(gè)環(huán)境下

現(xiàn)代編輯器默認(rèn)TAB=4個(gè)空格。你也不需要非得用4個(gè)空格,但要確保一致性

官方的文檔特別好,真的。要是標(biāo)準(zhǔn)庫(kù)里沒有,翻翻The Hitchhiker’s Guide to Python這本書

我覺得Python的命名風(fēng)格特別好,更直觀。list不是數(shù)組,就是序列;關(guān)聯(lián)數(shù)組明明就是dict

二進(jìn)制字符串前面加個(gè)b,是因?yàn)閁nicode規(guī)范中,1字節(jié)≠1byte

這樣做的好處是,我可以隨時(shí)隨地引用一個(gè)東西,而不需要每次都去復(fù)制粘貼原來(lái)的名字

同上

notacoward

1和2是同一個(gè)問題,有關(guān)整個(gè)生態(tài),跟語(yǔ)言本身無(wú)關(guān)。因?yàn)檫@類社區(qū)維護(hù)的項(xiàng)目都是不同的人花費(fèi)寶貴的業(yè)余時(shí)間去維護(hù),每個(gè)人都有每個(gè)人的習(xí)慣和價(jià)值觀

這個(gè)只能說你自己太個(gè)性了。我們大家保持默認(rèn)的統(tǒng)一風(fēng)格,對(duì)于別人維護(hù)起來(lái)明顯更容易

C/C++的include很難處理模塊接口

list和array不是一個(gè)東西。下一個(gè)

每個(gè)語(yǔ)言都有自己的一套轉(zhuǎn)換方式。Python可能不是最完美的,但是其他的更差,呵呵

對(duì)象引用效率更高。尤其是當(dāng)變量名不一致的時(shí)候,你直接復(fù)制會(huì)有問題。但是你引用一下,就好多了

最好不要把自己的程序命名成標(biāo)準(zhǔn)庫(kù)里的程序或者模塊的名字

folkrav

首先要糾正下你,PyPy和PyPi發(fā)音不一樣。前一個(gè)是“派派”,后一個(gè)是“派-屁-愛”

其次,名稱很重要嗎?第三方誒大哥,啥名字都可以出現(xiàn)誒大哥。你就能保證你起名的時(shí)候,能做到信達(dá)雅嗎大哥?

jaxtellerSoA

我就不明白了。用縮進(jìn)來(lái)定義作用域,怎么就不好了?多一目了然??!別的語(yǔ)言{}里面不也得縮進(jìn)嗎?再說了,你就不覺得按住shift才能打出{}很難受嗎?

riskable

我跟C粉兒討論過“縮進(jìn)vs括號(hào)”這個(gè)問題。他說沒有括號(hào)怎么能輕松找出作用域呢?

標(biāo)準(zhǔn)Py粉兒答案是:啊原來(lái)你們喜歡括號(hào)是因?yàn)槟銈兊拇a壞習(xí)慣啊。

我想了想,可能這么問更恰當(dāng):假如不使用文本編輯器/IDE來(lái)突出顯示括號(hào)或它們之間的空間,你還是堅(jiān)持用括號(hào)不用縮進(jìn)嗎?

我估計(jì)他終于get到我的點(diǎn)了,說:啊我明白了,你之所以用縮進(jìn)是因?yàn)镻ython編輯器太爛了啊!真可憐。

Sign。

“我也不喜歡Python”

cutety

Python是我上手的第一個(gè)語(yǔ)言,但我以后再也不會(huì)用了。當(dāng)然作者的這些問題,在我看來(lái)都不是問題,個(gè)人習(xí)慣而已。

包管理模式簡(jiǎn)直爛到家。那么多包管理器可以借鑒啊,可以讓pip不那么爛啊

就不能有個(gè)標(biāo)準(zhǔn)包管理器有個(gè)標(biāo)準(zhǔn)manifest嗎?又不會(huì)懷孕!

twunde

安裝確實(shí)是個(gè)讓人頭疼的問題。是的很多人提到了安裝虛擬環(huán)境,venv/virtualenv。Ruby有RVM,可以輕松的在同樣環(huán)境下使用不同版本。我寧愿挨個(gè)給Ruby,PHP,Perl…做環(huán)境配置,也不愿意給Python配置。

nicoburns

哦!多行Lambda!我在JS里的最愛。Python里,沒!有!了!

setpatchaddress

我從1.5就開始用Python了??s進(jìn)來(lái)表示語(yǔ)句塊,是我最最最不能忍受的!

dbcurtis

我就喜歡C那種的括號(hào),不喜歡Python的縮進(jìn)方式。

colanderman

我覺得Python最大的問題其實(shí)是內(nèi)部模型對(duì)于它的意圖而言過于復(fù)雜了,就是一個(gè)有經(jīng)驗(yàn)的開發(fā)者都很難理解,別說初學(xué)者了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1956

    瀏覽量

    36606
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8501

    瀏覽量

    134551
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86666

原文標(biāo)題:為什么我覺得Python爛的要死?原因有八

文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    矽速科技正式入駐 RuyiSDK 開發(fā)者社區(qū),共建 RISC-V 開發(fā)者生態(tài)!

    近日,深圳矽速科技正式入駐RuyiSDK開發(fā)者社區(qū),攜手社區(qū)共同推動(dòng)RISC-V技術(shù)的發(fā)展與廣泛應(yīng)用,為開發(fā)者提供個(gè)更加便捷高效的開發(fā)環(huán)境。關(guān)于RuyiSDKRuyiSDK是中國(guó)科學(xué)
    的頭像 發(fā)表于 07-10 11:00 ?239次閱讀
    矽速科技正式入駐 RuyiSDK <b class='flag-5'>開發(fā)者</b>社區(qū),共建 RISC-V <b class='flag-5'>開發(fā)者</b>生態(tài)!

    HDC 2025開發(fā)者主題演講精彩回顧

    開發(fā)者解決方案升級(jí)等內(nèi)容,同時(shí)多位生態(tài)伙伴分享基于HarmonyOS的最新開發(fā)實(shí)踐,為開發(fā)者提供切實(shí)可行的創(chuàng)新思路,進(jìn)步推動(dòng)鴻蒙生態(tài)的繁榮發(fā)展。會(huì)上還舉行了HarmonyOS極客馬拉
    的頭像 發(fā)表于 07-09 11:20 ?319次閱讀

    華為正式啟動(dòng)HarmonyOS 6開發(fā)者Beta

    在2025年華為開發(fā)者大會(huì)(HDC)上,華為正式啟動(dòng)HarmonyOS 6開發(fā)者Beta,并全面展示年多以來(lái)與合作伙伴共建鴻蒙生態(tài)的創(chuàng)新成果。
    的頭像 發(fā)表于 06-24 15:42 ?317次閱讀

    深開鴻C(jī)EO王成錄:開發(fā)者是開源鴻蒙生態(tài)的原點(diǎn)

    發(fā)布會(huì)上表示:“操作系統(tǒng)的成功,取決于生態(tài)體系的競(jìng)爭(zhēng)力。開源鴻蒙生態(tài)的建設(shè),必須始于開發(fā)者?!?b class='flag-5'>他強(qiáng)調(diào),開發(fā)者是生態(tài)的原點(diǎn),是推動(dòng)技術(shù)演進(jìn)與產(chǎn)業(yè)創(chuàng)新的關(guān)鍵力量,而開鴻
    的頭像 發(fā)表于 05-26 12:06 ?402次閱讀
    深開鴻C(jī)EO王成錄:<b class='flag-5'>開發(fā)者</b>是開源鴻蒙生態(tài)的原點(diǎn)

    微軟開發(fā)者挑戰(zhàn)賽決賽圓滿收官

    歷時(shí)3個(gè)月的微軟開發(fā)者挑戰(zhàn)賽在萬(wàn)眾矚目中圓滿落下帷幕。這場(chǎng)匯聚卓越開發(fā)者智慧的科技盛宴,自啟動(dòng)以來(lái)便吸引 1500 + 創(chuàng)新人才踴躍報(bào)名,共征集到 150 + 份優(yōu)秀作品。經(jīng)過層層
    的頭像 發(fā)表于 05-12 15:35 ?275次閱讀

    2024 RT-Thread開發(fā)者大會(huì)精彩回顧

    近30重量級(jí)嘉賓,圍繞AI、大模型、虛擬化、工業(yè)應(yīng)用、車控、PLC、智能設(shè)備開發(fā)等熱點(diǎn)主題進(jìn)行了分享,吸引近千名來(lái)自全球的開發(fā)者和企業(yè)家。本次大會(huì)上還重磅發(fā)布
    的頭像 發(fā)表于 01-21 18:53 ?617次閱讀
    2024 RT-Thread<b class='flag-5'>開發(fā)者</b>大會(huì)精彩回顧

    開發(fā)者的開源鴻蒙故事

    近日,在以“切為了開發(fā)者”為主題的“2024開放原子開發(fā)者大會(huì)暨首屆開源技術(shù)學(xué)術(shù)大會(huì)”上,開源鴻蒙5.0 Release版本正式發(fā)布,備受各方關(guān)注。該版本在系統(tǒng)完備度、分布式創(chuàng)新、開發(fā)者
    的頭像 發(fā)表于 01-06 10:28 ?842次閱讀

    《HarmonyOS第課》煥新升級(jí),賦能開發(fā)者快速掌握鴻蒙應(yīng)用開發(fā)

    《HarmonyOS第課》煥新升級(jí),賦能開發(fā)者快速掌握鴻蒙應(yīng)用開發(fā) 隨著HarmonyOS NEXT發(fā)布,鴻蒙生態(tài)日益壯大,廣大開發(fā)者對(duì)于系統(tǒng)化學(xué)習(xí)平臺(tái)和課程的需求愈發(fā)強(qiáng)烈。近日,華
    發(fā)表于 01-02 14:24

    云端AI開發(fā)者工具怎么用

    云端AI開發(fā)者工具通常包括代碼編輯器、模型訓(xùn)練平臺(tái)、自動(dòng)化測(cè)試工具、代碼管理工具等。這些工具不僅降低了AI開發(fā)的門檻,還極大地提高了開發(fā)效率和模型性能。下面,AI部落小編為您介紹云端AI開發(fā)者
    的頭像 發(fā)表于 12-05 13:31 ?557次閱讀

    HarmonyOS NEXT應(yīng)用元服務(wù)開發(fā)Intents Kit(意圖框架服務(wù))事件推薦開發(fā)者測(cè)試

    :基礎(chǔ)信息提供,環(huán)境準(zhǔn)備,聯(lián)調(diào)驗(yàn)證。 、基礎(chǔ)信息提供 達(dá)成開發(fā)意向后,開發(fā)者發(fā)送郵件到郵箱(hagservice@huawei.com)或者聯(lián)系華為意圖框架接口同事,向華為提供測(cè)試應(yīng)用的信息。 二、環(huán)境
    發(fā)表于 11-18 17:39

    宣布 RISE RISC-V 開發(fā)者表彰試點(diǎn)計(jì)劃:賦能開發(fā)者拓展 RISC-V 影響力

    我們直在尋找加強(qiáng)RISC-V架構(gòu)和擴(kuò)大其在軟件生態(tài)系統(tǒng)中應(yīng)用的方法。為進(jìn)步實(shí)現(xiàn)這個(gè)愿景,我們很高興地宣布啟動(dòng)RISC-V開發(fā)者表彰試點(diǎn)計(jì)劃[1],旨在表彰和支持為將RISC-V打造成所有項(xiàng)目
    的頭像 發(fā)表于 10-15 08:08 ?553次閱讀
    宣布 RISE RISC-V <b class='flag-5'>開發(fā)者</b>表彰試點(diǎn)計(jì)劃:賦能<b class='flag-5'>開發(fā)者</b>拓展 RISC-V 影響力

    KaihongOS 4.1.2開發(fā)者預(yù)覽版正式上線,誠(chéng)邀開發(fā)者免費(fèi)試用!

    深開鴻在2024開放原子開源生態(tài)大會(huì)上正式宣布KaihongOS4.1.2開發(fā)者預(yù)覽版全面上線,并向全球開發(fā)者開放免費(fèi)下載。作為KaihongOS不斷創(chuàng)新與發(fā)展的重要里程碑,此次預(yù)覽版為開發(fā)者提供
    的頭像 發(fā)表于 09-28 08:07 ?720次閱讀
    KaihongOS 4.1.2<b class='flag-5'>開發(fā)者</b>預(yù)覽版正式上線,誠(chéng)邀<b class='flag-5'>開發(fā)者</b>免費(fèi)試用!

    KaihongOS 4.1.2開發(fā)者預(yù)覽版正式上線,誠(chéng)邀開發(fā)者免費(fèi)試用!

    開發(fā)者提供獨(dú)特的搶先體驗(yàn)機(jī)會(huì),涵蓋了原生應(yīng)用開發(fā)、分布式能力、原子化服務(wù)等核心功能特性,助力開發(fā)者探索國(guó)產(chǎn)操作系統(tǒng)的更多可能性。 此次發(fā)布的預(yù)覽版適配RK3568、RK3588、ES
    的頭像 發(fā)表于 09-26 15:59 ?739次閱讀

    2024年上海海思MCU開發(fā)者體驗(yàn)官招募,手機(jī)/MatePad大獎(jiǎng)等你拿!

    報(bào)名信息,報(bào)名提交后無(wú)法修改報(bào)名信息。開發(fā)者對(duì)所提交的報(bào)名信息真實(shí)性負(fù)責(zé),如果報(bào)名信息不完整/報(bào)名信息作假,則報(bào)名無(wú)效; 2)沒有海思賬號(hào)的開發(fā)者需先注冊(cè)海思賬號(hào)才能提交報(bào)名,每個(gè)開發(fā)者
    發(fā)表于 08-02 17:29

    星閃開發(fā)者體驗(yàn)官,沖刺終極大獎(jiǎng)華為星閃手機(jī)Pure70

    為鼓勵(lì)開發(fā)者積極參與星閃開發(fā),首批星閃開發(fā)者體驗(yàn)官活動(dòng)已于6月22日正式啟動(dòng)報(bào)名,截止目前已經(jīng)有百余星閃開發(fā)者積極參與活動(dòng),助力每
    的頭像 發(fā)表于 07-20 08:02 ?1415次閱讀
    星閃<b class='flag-5'>開發(fā)者</b>體驗(yàn)官,沖刺終極大獎(jiǎng)華為星閃手機(jī)Pure70