哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

一位開(kā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ǔ)言。但凡事有例外,近日,一位開(kāi)發(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ǔ)言,可見(jiàn)Python受歡迎程度之高。

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

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

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

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

總之一通下來(lái),把Python貶得夠嗆。這篇文章在當(dāng)下Python大熱的背景下可算是一朵“奇葩“了。看多了Python贊歌是不是有點(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就是前車(chē)之鑒。當(dāng)用戶選擇放棄平臺(tái)時(shí),它就注定會(huì)消失。

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

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

據(jù)我所知,沒(méi)有人在Python2上創(chuàng)建新的代碼,但我們還讓它茍延殘喘著,因?yàn)闆](méi)人將所需的代碼導(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)說(shuō),你直接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。這種方法的確很有效,但沒(méi)有持續(xù)多久,因?yàn)槲议_(kāi)始了另一個(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ō)一句,是誰(shuí)維護(hù)這些pip模塊?答案是社區(qū)。也就是說(shuō),沒(méi)有明確的所有者,也沒(méi)有強(qiáng)制性的責(zé)任所屬。今年早些時(shí)候,一個(gè)版本的PyPi有一個(gè)后門(mén)發(fā)生了SSH憑據(jù)盜竊,但我對(duì)此一點(diǎn)都不驚訝,因?yàn)樯鐓^(qū)存儲(chǔ)庫(kù)根本不值得相信。出于同樣的原因,我也不使用Node.js和npm。

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

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

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

Python手冊(cè)說(shuō)你可以使用任意數(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)化,盡管它沒(méi)出現(xiàn)在Python手冊(cè)中。文檔中的示例說(shuō)可以使用TAB、“TAB+1空格”等等。但是社區(qū)卻對(duì)4個(gè)空格有著喪心病狂的偏執(zhí)!因此,除非你打算永遠(yuǎn)不向其他任何人展示你寫(xiě)的代碼,否則每個(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)條件操作都可能讓開(kāi)始與結(jié)束變得難以匹配。我可憐那些錯(cuò)誤計(jì)算空格數(shù)量(比如只輸了3個(gè)空格而不是四個(gè))的人,因?yàn)檫@樣的錯(cuò)誤需要數(shù)小時(shí)進(jìn)行調(diào)試和追蹤。

我debug代碼習(xí)慣沒(méi)有縮進(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)說(shuō)真的很糟糕。這樣的操作“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)行,你不知道它在做什么,你甚至都沒(méi)察覺(jué)到。除非存在命名空間沖突,否則在這種情況下,你需要花很長(zhǎng)時(shí)間來(lái)查找原因。

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

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

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

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

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

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

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

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

JavaScript存在兼容性問(wèn)題(并非每個(gè)瀏覽器都支持所有有用的功能)。但是,Python比我見(jiàn)過(guò)的任何其他語(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í)沒(méi)有區(qū)別。

?在Python中,單引號(hào)和雙引號(hào)之間沒(méi)有區(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í)再說(shuō)吧。

原因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è)變量都是通過(guò)對(duì)象引用傳遞的,而且對(duì)變量的任何更改都會(huì)導(dǎo)致其他所有地方的變量值變化,那么其實(shí)也可以全部使用全局變量來(lái)處理所有內(nèi)容。使用不同的名稱調(diào)用同一個(gè)對(duì)象不會(huì)更改對(duì)象的值,因此實(shí)際上該對(duì)象就是全局的。C語(yǔ)言程序員有句老話,全局變量是邪惡的,不應(yīng)該使用。

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

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

根據(jù)使用的庫(kù)或函數(shù)來(lái)命名程序是一種常見(jiàn)的編程技術(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ū)分開(kāi)來(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),我和他們討論過(guò)這些問(wèn)題,每次他們都點(diǎn)頭表示同意。他們并不否認(rèn)Python確實(shí)存在這些問(wèn)題,只是覺(jué)得這些缺點(diǎn)不足以讓他們拋棄Python。

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

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

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

“是你不懂Python”

Mario Abarca

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

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

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

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

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

我覺(jué)得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è)問(wèn)題,有關(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è)只能說(shuō)你自己太個(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ì)有問(wèn)題。但是你引用一下,就好多了

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

folkrav

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

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

jaxtellerSoA

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

riskable

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

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

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

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

Sign。

“我也不喜歡Python”

cutety

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

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

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

twunde

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

nicoburns

哦!多行Lambda!我在JS里的最愛(ài)。Python里,沒(méi)!有!了!

setpatchaddress

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

dbcurtis

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

colanderman

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

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

    關(guān)注

    10

    文章

    1965

    瀏覽量

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

    關(guān)注

    67

    文章

    8565

    瀏覽量

    137226
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4885

    瀏覽量

    90311

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    建言有禮 | RA 生態(tài)社區(qū)再次升級(jí),共筑更懂開(kāi)發(fā)者的 RA 家園!

    效解決您的技術(shù)痛點(diǎn)、更豐富您的生態(tài)體驗(yàn),我們決定:把決定權(quán)交給每一位用戶!即日起,RA生態(tài)社區(qū)正式面向全體開(kāi)發(fā)者、工程師、合作伙伴公開(kāi)征集升級(jí)建議,您的每條想法
    的頭像 發(fā)表于 04-15 17:43 ?609次閱讀
    建言有禮 | RA 生態(tài)社區(qū)再次升級(jí),共筑更懂<b class='flag-5'>開(kāi)發(fā)者</b>的 RA 家園!

    回望2025:與162萬(wàn)開(kāi)發(fā)者起,讓AI硬件觸手可及

    致每一位涂鴉開(kāi)發(fā)者:2025農(nóng)歷年即將畫(huà)上句號(hào)。這年,AI浪潮席卷全球,AI硬件賽道迎來(lái)前所未有的機(jī)遇與挑戰(zhàn)。而你們——162萬(wàn)涂鴉開(kāi)發(fā)者,用
    的頭像 發(fā)表于 02-12 18:59 ?391次閱讀
    回望2025:與162萬(wàn)<b class='flag-5'>開(kāi)發(fā)者</b><b class='flag-5'>一</b>起,讓AI硬件觸手可及

    開(kāi)發(fā)者實(shí)戰(zhàn)分享 | 用涂鴉 T5AI-Board 打造 4.26 英寸墨水屏閱讀器

    :賈-AIDevLog,就是墨水屏應(yīng)用領(lǐng)域的一位創(chuàng)客。接下來(lái),讓我們同走進(jìn)的創(chuàng)作空間,揭秘塊4.26英寸黑白墨水屏如何被賦予多元可能。依托涂鴉AI
    的頭像 發(fā)表于 02-06 18:13 ?573次閱讀
    <b class='flag-5'>開(kāi)發(fā)者</b>實(shí)戰(zhàn)分享 | 用涂鴉 T5AI-Board 打造 4.26 英寸墨水屏閱讀器

    2025華為開(kāi)發(fā)者大賽暨開(kāi)發(fā)者年度會(huì)議成功舉辦

    12月27日-12月28日,以“成就AI原生時(shí)代先鋒開(kāi)發(fā)者”為主題的2025華為開(kāi)發(fā)者大賽暨開(kāi)發(fā)者年度會(huì)議在上海華為練秋湖研發(fā)中心舉辦。本次會(huì)議旨在匯聚先鋒開(kāi)發(fā)力量,搭建開(kāi)放共贏的生態(tài)
    的頭像 發(fā)表于 12-31 13:32 ?1038次閱讀

    一位00后如何登上MLOps全球舞臺(tái)

    SwanLab,成為頗具影響力的MLOps工具開(kāi)發(fā)者。的故事始終繞不開(kāi)“開(kāi)源”二字,也深刻烙印著新開(kāi)發(fā)者敢想敢闖、實(shí)干創(chuàng)新的精神底色。
    的頭像 發(fā)表于 12-12 16:25 ?903次閱讀

    2025開(kāi)源鴻蒙開(kāi)發(fā)者激勵(lì)計(jì)劃正式啟動(dòng)

    11月21日,2025開(kāi)放原子開(kāi)發(fā)者大會(huì)盛大啟幕,聚焦“AI共智,開(kāi)源共享”主題,吸引來(lái)自全球的開(kāi)發(fā)者、企業(yè)技術(shù)領(lǐng)袖、社區(qū)維護(hù)及高校科研力量參會(huì)。作為大會(huì)的重要組成部分,開(kāi)源鴻蒙技
    的頭像 發(fā)表于 11-27 14:44 ?837次閱讀

    deepin社區(qū)亮相2025開(kāi)放原子開(kāi)發(fā)者大會(huì)

    近日,以“切為了開(kāi)發(fā)者——AI共智,開(kāi)源共享”為主題的2025開(kāi)放原子開(kāi)發(fā)者大會(huì)在京圓滿落幕。大會(huì)聚焦人工智能與開(kāi)源技術(shù)的深度融合,展現(xiàn)開(kāi)源生態(tài)在推動(dòng)產(chǎn)業(yè)創(chuàng)新、培育新質(zhì)生產(chǎn)力方面的
    的頭像 發(fā)表于 11-25 09:19 ?1337次閱讀

    元服務(wù)發(fā)布配置開(kāi)發(fā)者服務(wù)信息

    。 左側(cè)導(dǎo)航選擇“應(yīng)用上架 > 應(yīng)用信息”。 進(jìn)入“開(kāi)發(fā)者服務(wù)信息”區(qū)域,編輯相關(guān)信息。 供應(yīng)商、開(kāi)發(fā)者名稱來(lái)自注冊(cè)賬號(hào)的信息,只讀顯示,無(wú)法修改。 可編輯信息: 官網(wǎng):請(qǐng)輸入以http
    發(fā)表于 10-31 17:58

    2025開(kāi)放原子開(kāi)發(fā)者大會(huì)11月啟幕

    開(kāi)發(fā)者年度盛會(huì)即將登場(chǎng)!2025開(kāi)放原子開(kāi)發(fā)者大會(huì)將于11月21-22日,在北京北人亦創(chuàng)國(guó)際會(huì)展中心盛大召開(kāi)。大會(huì)以“切為了開(kāi)發(fā)者”為主題,匯聚全球開(kāi)源智慧——國(guó)內(nèi)外優(yōu)秀
    的頭像 發(fā)表于 10-24 14:05 ?1121次閱讀

    NVIDIA DRIVE AGX Thor開(kāi)發(fā)者套件重磅發(fā)布

    這款由 NVIDIA DriveOS 7 驅(qū)動(dòng)的開(kāi)發(fā)者套件能夠幫助開(kāi)發(fā)者們打造出更安全的智能汽車(chē)和交通解決方案。
    的頭像 發(fā)表于 09-04 11:20 ?1609次閱讀

    曙光網(wǎng)絡(luò)SugonRI開(kāi)發(fā)者社區(qū)正式上線

    (sugonri.sugon.com),面向使用及計(jì)劃使用SugonRI的開(kāi)發(fā)者,打造個(gè)集學(xué)習(xí)、交流、案例分享與應(yīng)用實(shí)踐于體的開(kāi)放平臺(tái)。
    的頭像 發(fā)表于 09-04 09:58 ?1145次閱讀

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

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

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

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

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

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

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

    歷時(shí)3個(gè)月的微軟開(kāi)發(fā)者挑戰(zhàn)賽在萬(wàn)眾矚目中圓滿落下帷幕。這場(chǎng)匯聚卓越開(kāi)發(fā)者智慧的科技盛宴,自啟動(dòng)以來(lái)便吸引 1500 + 創(chuàng)新人才踴躍報(bào)名,共征集到 150 + 份優(yōu)秀作品。經(jīng)過(guò)層層
    的頭像 發(fā)表于 05-12 15:35 ?827次閱讀
    紫金县| 文安县| 青田县| 澄江县| 贵阳市| 邻水| 福安市| 洮南市| 廊坊市| 西吉县| 长武县| 尉氏县| 七台河市| 陵水| 吉首市| 二连浩特市| 高阳县| 忻城县| 苏尼特左旗| 西乡县| 茂名市| 房产| 枝江市| 高雄市| 莒南县| 崇文区| 吉安市| 文山县| 吴桥县| 宝丰县| 乌兰县| 连城县| 梅州市| 汉阴县| 包头市| 武宁县| 建水县| 明星| 沈阳市| 云霄县| 通城县|