【導(dǎo)讀】這篇長(zhǎng)文詳細(xì)寫了Python從誕生到流行的故事,專訪了Python發(fā)明人Guido van Rossum以及相關(guān)的一些人,展示了Python是如何成為最受歡迎的編程語(yǔ)言的。
誰(shuí)能想到,30年后,一條蟒蛇因?yàn)?a href="http://www.wenjunhu.com/v/tag/150/" target="_blank">人工智能而席卷了全世界!這一切,都源于1989年的那個(gè)圣誕節(jié)。
一個(gè)名叫Guido van Rossum程序員在荷蘭的阿姆斯特丹呆著,無(wú)所事事的圣誕假期有點(diǎn)無(wú)聊。為了打發(fā)時(shí)間,他開發(fā)了一個(gè)新的腳本解釋程序。于是,現(xiàn)在機(jī)器學(xué)習(xí)的首選語(yǔ)言:Python誕生了。
Python以簡(jiǎn)單易用而廣受歡迎,它簡(jiǎn)單到即使你不是學(xué)計(jì)算機(jī)的人,也可以輕松的學(xué)會(huì)Python,開發(fā)一些可以提高工作效率的腳本程序。
如今的Python,既可以將黑洞的第一張圖像拼接在一起,也能夠在全球無(wú)數(shù)臺(tái)電腦上為黑客提供動(dòng)力;它幫助Netflix將視頻流傳輸?shù)饺虺^(guò)1億個(gè)家庭,為照片共享現(xiàn)象Instagram提供動(dòng)力,幫助NASA進(jìn)行太空探索。
但有個(gè)問(wèn)題一直非常耐人尋味:Python究竟是如何從一個(gè)“閑散人員”的業(yè)余項(xiàng)目開始,短短幾十年便成為全世界最熱門語(yǔ)言的?
TechRepublic首席記者采訪了Python之父Guido van Rossum,試圖解開Python身上神奇的謎團(tuán)。
就讓我們,從Python的身世說(shuō)起吧。
為什么是Python?
到底作者是怎么想的才會(huì)起名Python?
Python誕生于1989年,距今剛好30個(gè)年頭。Python的誕生源于一次偶然,而Python的命名則源于一部喜劇。
那個(gè)時(shí)候,Guido非常癡迷一部喜劇《蒙提·派森的飛行馬戲團(tuán)(Monty Python's Flying Circus)》。該劇在當(dāng)時(shí)以革新的電視喜劇模式發(fā)展,一定程度地影響了日后的英國(guó)喜劇。因此Guido給自己新項(xiàng)目起了一個(gè)霸氣的名字:Python(蟒蛇)。
2年后,即1991年,Python首版正式面世;2000年,最負(fù)盛名版本:Python 2正式發(fā)布;2008年,最具爭(zhēng)議版本:Python 3出世。
到底Python是因?yàn)槭裁幢粍?chuàng)建出來(lái)的呢?
Perl腳本語(yǔ)言與他在CWI工作的Amoeba分布式計(jì)算系統(tǒng)不兼容,是促使他自己開發(fā)一門語(yǔ)言的關(guān)鍵。
一個(gè)人開發(fā)一門語(yǔ)言,難度那是相當(dāng)大的。好在當(dāng)時(shí)而立之年的Guido已經(jīng)有了相當(dāng)?shù)拈_發(fā)經(jīng)驗(yàn)。此前,他花了三年時(shí)間在CWI的一個(gè)團(tuán)隊(duì)工作,創(chuàng)建了一個(gè)解釋性編程語(yǔ)言ABC,已經(jīng)深入了解了構(gòu)建執(zhí)行程序員指令的解釋器需要什么,以及新語(yǔ)言所需的語(yǔ)法構(gòu)建塊。
而ABC并不成功,他看到了ABC身上的很多缺點(diǎn),例如:不可擴(kuò)、不能直接進(jìn)行IO、傳播困難、過(guò)度革新。因此在寫Python的時(shí)候,Guido從一開始就奠定了“開放”的基調(diào)。
Python本身被設(shè)計(jì)為可擴(kuò)展的。并非所有的特性和功能都集成到語(yǔ)言核心。Python提供了豐富的API和工具,以便程序員能夠輕松地使用C、C++、Cython來(lái)編寫擴(kuò)展模塊。Python編譯器本身也可以被集成到其它需要腳本語(yǔ)言的程序內(nèi)。
因此,有很多人把Python作為一種“膠水語(yǔ)言”使用。使用Python將其他語(yǔ)言編寫的程序進(jìn)行集成和封裝。在Google內(nèi)部的很多項(xiàng)目,例如Google應(yīng)用服務(wù)引擎使用C++編寫性能要求極高的部分,然后用Python或Java/Go調(diào)用相應(yīng)的模塊。
到底是什么樣的人能開發(fā)出Python這樣的語(yǔ)言呢?
當(dāng)時(shí)的Guido也是個(gè)典型的理工宅男,沒有太多的社交生活。再說(shuō)當(dāng)時(shí)也沒有WhatsApp、Tinder。Guido基本就是看電視、編程,或者看電視的時(shí)候順便編程。
同樣作為一個(gè)典型的理工宅男,親手創(chuàng)造產(chǎn)品的沖動(dòng)總是如影隨形。在一個(gè)無(wú)所事事的圣誕節(jié)假期,Guido決定自己動(dòng)手,親自設(shè)計(jì)、開發(fā)一個(gè)大項(xiàng)目,完全按照他的想法寫代碼、進(jìn)行布局和設(shè)計(jì)。編程這件事情,比電視劇更讓他沉迷。
從1989年開始,Guido就一直是Python的決策者以及主力開發(fā)者,因此Python社群經(jīng)常稱呼他是終身仁慈獨(dú)裁者。
到底誰(shuí)是Python的第一批種子用戶?
Guido剛把Python做出來(lái),需要有人來(lái)使用。但當(dāng)時(shí)Guido并不是什么意見領(lǐng)袖、名人大腕,加上那時(shí)候還沒有互聯(lián)網(wǎng),雖然手捧著Python這把屠龍寶刀,卻難尋屠龍的劍士。他硬是說(shuō)服了兩位同事,成為Python的第一批種子用戶。
那個(gè)時(shí)候,Guido對(duì)這個(gè)小蛇蛇并沒有什么大的期待,只要有人用就感覺很開心了,也算辛苦沒有白費(fèi)。
1991年,Guido通過(guò)alt.sources新聞組向世界發(fā)布了Python。從此,一傳十,十傳百,Python收獲到了越來(lái)越多的用戶,Python社群也開始活躍起來(lái)。
他意識(shí)到,自己可能成功了!
為什么Python贏了
下圖顯示了各語(yǔ)言的增長(zhǎng)趨勢(shì)。注意哪條加粗的紅線,Python可以說(shuō)締造了一個(gè)奇跡!
怎么會(huì)這樣?
Guido覺得,開發(fā)者之所以熱愛Python,因?yàn)樗鉀Q了開發(fā)者的痛點(diǎn),也就是Guido開發(fā)Python的初衷:開發(fā)者需要一種高級(jí)腳本語(yǔ)言,在易用性和功能性之間取得平衡、在處理復(fù)雜邏輯時(shí)沒有Unix shell的限制;能夠像C語(yǔ)言那樣,全面調(diào)用計(jì)算機(jī)的功能接口,又可以像shell那樣,可以輕松的編程。
分析公司Gartner的應(yīng)用程序平臺(tái)戰(zhàn)略團(tuán)隊(duì)的研究主管Fintan Ryan表示,Python清晰易讀的語(yǔ)法,在贏得開發(fā)人員方面發(fā)揮了重要作用,無(wú)論是現(xiàn)在還是在20世紀(jì)90年代,即使將這種重要性歸因于縮進(jìn)已經(jīng)證明是分裂的。
除了這種可讀性之外,Guido還表示,從早期開始,Python就提供了一系列內(nèi)置功能,例如具有類和異常處理等功能;提供了對(duì)lambda、map和filter等函數(shù)的支持等。
在Python的開發(fā)過(guò)程中,社區(qū)同樣起到了重要的作用。Guido自認(rèn)為自己不是全能型的程序員,所以他只負(fù)責(zé)制訂框架。
如果問(wèn)題太復(fù)雜,他會(huì)選擇繞過(guò)去,也就是cut the corner。這些問(wèn)題最終由社區(qū)中的其他人解決。
社區(qū)中的人才是異常豐富的,就連創(chuàng)建網(wǎng)站,籌集基金這樣與開發(fā)稍遠(yuǎn)的事情,也有人樂意于處理。如今的項(xiàng)目開發(fā)越來(lái)越復(fù)雜,越來(lái)越龐大,合作以及開放的心態(tài)成為項(xiàng)目最終成功的關(guān)鍵。
而互聯(lián)網(wǎng)也是成就Python的重要推力。Python被應(yīng)用于Web開發(fā),迎來(lái)了Python的一次井噴。
到1994年,Python引起了Michael McLay的注意,他當(dāng)時(shí)美國(guó)國(guó)家標(biāo)準(zhǔn)局(NBS,現(xiàn)在是NIST,美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所)擔(dān)任高級(jí)職位。 為了向局內(nèi)的其他人推銷Python,McLay邀請(qǐng)當(dāng)時(shí)還在荷蘭CWI工作的van Rossum到NIST做兩個(gè)月的客座研究員。這個(gè)職位后來(lái)被證明是Python未來(lái)發(fā)展的催化劑,也是van Rossum人生中的一個(gè)重大變化。
正是擔(dān)任這個(gè)職位期間,第一次Python研討會(huì)在國(guó)家統(tǒng)計(jì)局的辦公室舉行了,van Rossum、Barry Warsaw以及其他早期Python愛好者聚集在一起,討論他們正在用Python做什么,以及對(duì)這種語(yǔ)言未來(lái)發(fā)展的希望。
在國(guó)家統(tǒng)計(jì)局的辦公室里, van Rossum 見到了羅伯特·卡恩(Bob Kahn)。卡恩因參與開發(fā)了互聯(lián)網(wǎng)的一項(xiàng)基本技術(shù)——TCP/IP協(xié)議而聞名。
那次會(huì)議的結(jié)果是van Rossum得到了一份工作邀請(qǐng),與卡恩一起在國(guó)家研究計(jì)劃公司(CNRI)工作。CNRI是一個(gè)位于弗吉尼亞州的非盈利研究組織,專注于網(wǎng)絡(luò)技術(shù)的戰(zhàn)略發(fā)展。
那時(shí)Python已經(jīng)解決了對(duì)一種新型編程語(yǔ)言的需求,van Rossum說(shuō)正好是在他開始質(zhì)疑自己在CWI的未來(lái)時(shí),這份工作邀約恰逢其時(shí)。
他說(shuō):“CWI更像是一個(gè)學(xué)術(shù)機(jī)構(gòu),他們對(duì)我施加了輕微的壓力,要么讓我攻讀博士學(xué)位,要么讓我面對(duì)不得不到別處找工作的前景?!?/p>
“那時(shí)我已經(jīng)35歲了,攻讀博士課程的前景并沒有真正吸引我。早些時(shí)候,由于Python的原因,其他一些潛在客戶找到了我,在打了很多電話并思考之后,我決定拒絕他們。但在這里,我喜歡這里的人,喜歡他們提供給我的東西,喜歡這個(gè)項(xiàng)目,我就去做了?!?/p>
正是在CNRI, van Rossum在一群Python愛好者的幫助下,將許多用于管理Python語(yǔ)言的結(jié)構(gòu)組合在一起。1995年4月加入CNRI后,van Rossum領(lǐng)導(dǎo)了一個(gè)小型開發(fā)團(tuán)隊(duì),致力于開發(fā)名為Knowbot的程序,該軟件被稱為移動(dòng)代理,設(shè)計(jì)用來(lái)運(yùn)行跨分布式計(jì)算機(jī)系統(tǒng),比如互聯(lián)網(wǎng)。
這個(gè)團(tuán)隊(duì)使用Python工作,加入van Rossum的還有Jeremy Hylton、Roger Masse、Barry Warsaw、Ken Manheimer和Fred Drake,他們都將在Python社區(qū)中發(fā)揮重要作用。
van Rossum說(shuō):“我們最終形成了一個(gè)由4到10人組成的團(tuán)隊(duì),其中大部分人在CNRI工作,他們是Python開發(fā)的核心?!?/p>
當(dāng)van Rossum在CNRI工作時(shí),這個(gè)團(tuán)隊(duì)幫助他創(chuàng)建了python.org網(wǎng)站、用于管理核心代碼庫(kù)更改的CVS服務(wù)器,以及用于改進(jìn)和維護(hù)Python語(yǔ)言的Python特殊興趣組的郵件列表。
自1991年公開發(fā)布以來(lái),Python用戶群體顯著增長(zhǎng),到2016年,該語(yǔ)言已經(jīng)吸引了相當(dāng)大的全球用戶群。在此期間,隨著Python軟件基金會(huì)(PSF)前身的建立,語(yǔ)言的管理開始形式化,該基金會(huì)于2001年成立。隨著社區(qū)的發(fā)展,從1994年開始的兩年一度的Python研討會(huì)逐漸演變成更大型的年度活動(dòng),并最終演變成PSF的年度PyCon,直到今天仍然很受歡迎。
到了21世紀(jì)之交,Python語(yǔ)言發(fā)展到非常大,有一個(gè)相當(dāng)大的社區(qū)在其發(fā)展中發(fā)揮著積極作用,而在1994年的夏天,早期Python用戶對(duì)這門語(yǔ)言最擔(dān)心的事情是“萬(wàn)一Guido發(fā)生車禍怎么辦”。
然而,Van Rossum繼續(xù)扮演著核心角色,他是這門語(yǔ)言的核心的想法從未消失,他得到一個(gè)昵稱“仁慈的終身獨(dú)裁者”(BDFL),這個(gè)半開玩笑的頭銜流傳了多年。
Ryan說(shuō),一種語(yǔ)言的創(chuàng)建者充當(dāng)這種語(yǔ)言的管理員并不是不尋常的事,他引用了Perl語(yǔ)言創(chuàng)建者Larry Wall,以及Node.js的Ryan Dahl的例子。但是他說(shuō)van Rossum在Python的管理上是公平的。
實(shí)際上,通過(guò)核心開發(fā)人員社區(qū)之間的公開辯論,van Rossum將Python開發(fā)的開放性歸結(jié)為Python成功的決定性因素。
Python的演變
在這期間,Python取得了重大飛躍,特別是2008年P(guān)ython 3.0的推出使該語(yǔ)言現(xiàn)代化了,最近該語(yǔ)言的管理方式也發(fā)生了重大變化。
這些變化是去年觸發(fā)的,當(dāng)時(shí)van Rossum辭去了BDFL的領(lǐng)導(dǎo)角色,原因是社區(qū)對(duì)PEP 572提案中引入“賦值表達(dá)式”爭(zhēng)論不休。
雖然引入賦值表達(dá)式是為了讓編寫代碼更高效,但van Rossum在網(wǎng)上遭到了反對(duì)修改的人的嚴(yán)厲批評(píng),一些人認(rèn)為使用賦值表達(dá)式會(huì)降低代碼的可讀性,難以維護(hù)。
Van Rossum說(shuō),他習(xí)慣了就新功能進(jìn)行辯論,但正是一些詆毀他的人的頑固態(tài)度,以及某些攻擊他個(gè)人的舉動(dòng),使他決定辭職。
“我對(duì)那些技術(shù)上持不同意見的人在社交媒體上開始抱怨說(shuō)決策流程被打破了,或者說(shuō)我犯了一個(gè)嚴(yán)重的錯(cuò)誤,感到非常失望。我感覺背后受到了攻擊,”他說(shuō)。
“過(guò)去,如果要對(duì)語(yǔ)言的變化或功能的改進(jìn)做出決定,很顯然,一群核心開發(fā)人員會(huì)討論這件事的利弊。要么會(huì)出現(xiàn)一個(gè)明確的共識(shí),要么,如果沒有那么明確的共識(shí),我會(huì)在腦海中反復(fù)考慮,然后做出決定。在PEP572項(xiàng)目上,盡管它很有爭(zhēng)議,但我選擇了肯定的答案?!?/p>
“這并不是一場(chǎng)反抗,但我覺得我沒有得到足夠多的核心開發(fā)者社區(qū)的信任,來(lái)支持我繼續(xù)前進(jìn)?!?/p>
他認(rèn)為,這種爭(zhēng)論變了味兒的部分原因是今天使用Python的人太多了。
“Python社區(qū)的規(guī)模如此之大,這可能也是原因之一。當(dāng)然,達(dá)成任何形式的共識(shí)都比較困難,因?yàn)闊o(wú)論你怎么決策,總會(huì)有一些異見人士?!?/p>
今年早些時(shí)候,負(fù)責(zé)維護(hù)和更新Python參考CPython解釋器的Python核心開發(fā)人員選舉了一個(gè)指導(dǎo)委員會(huì)來(lái)監(jiān)督該語(yǔ)言的未來(lái)。Van Rossum和Warsaw以及其他核心開發(fā)者Brett Cannon、Carol Willing和Nick Coghlan一同當(dāng)選。
Warsaw說(shuō),對(duì)用戶基數(shù)增長(zhǎng)如此之快的語(yǔ)言進(jìn)行管理是必要的。
“要是25年前可能還好,當(dāng)時(shí)Python社區(qū)很小,Python語(yǔ)言也比較小,但現(xiàn)在它真的太大了,完全讓一個(gè)人負(fù)擔(dān)是不行的。我認(rèn)為,僅僅是為了Guido個(gè)人的健康和對(duì)社區(qū)的參與,將這種負(fù)擔(dān)分?jǐn)偟轿鍌€(gè)人身上比較好。”
每次新的Python功能發(fā)布后,指導(dǎo)委員會(huì)都會(huì)進(jìn)行新的選舉,Warsaw說(shuō)這將為下一代領(lǐng)導(dǎo)語(yǔ)言鋪平道路。
他說(shuō):“如果Python在25年后還能保持健康,那就不會(huì)是Guido和我在管理了?!?/p>
指導(dǎo)委員會(huì)的成立也受到了更廣泛的Python核心開發(fā)人員社區(qū)的歡迎,核心開發(fā)人員Mariatta Wijaya說(shuō),這一舉措感覺像是朝著正確的方向邁出了一步。她說(shuō):“對(duì)我來(lái)說(shuō),指導(dǎo)委員會(huì)比一個(gè)人決定一切要好——這是太大的責(zé)任和負(fù)擔(dān)?!?/p>
Python的未來(lái)
雖然Python繼續(xù)以驚人的速度吸引新用戶,但社區(qū)內(nèi)的一些人看到了未來(lái)的挑戰(zhàn),如果Python想保持增長(zhǎng),就需要不斷發(fā)展。
在今年的Python語(yǔ)言峰會(huì)上,BeeWare聯(lián)合創(chuàng)始人Russell Keith-Magee警告說(shuō),如果對(duì)移動(dòng)平臺(tái)和新的web平臺(tái)的支持得不到改善,Python將面臨“生存風(fēng)險(xiǎn)”。
“手機(jī)和平板電腦正在實(shí)現(xiàn)臺(tái)式機(jī)和筆記本電腦從未見過(guò)的市場(chǎng)滲透,但作為一個(gè)社區(qū),我們沒有一個(gè)關(guān)于如何在這些設(shè)備上使用Python的計(jì)劃,”他說(shuō)。“那么,當(dāng)筆記本電腦成為利基設(shè)備時(shí),Python會(huì)發(fā)生什么變化呢?”
Keith-Magee的BeeWare項(xiàng)目旨在使用Python編寫應(yīng)用程序并使其在任何地方運(yùn)行成為可能。
他提到,需要更好地支持為非x86硬件平臺(tái)編譯代碼;Python的測(cè)試套件很容易在移動(dòng)平臺(tái)和web平臺(tái)上崩潰;Python應(yīng)用程序的安裝大小過(guò)于龐大;在Android、Windows和web上編寫GUI代碼時(shí),使asyncio庫(kù)工作所需的工作量過(guò)大;以及標(biāo)準(zhǔn)庫(kù)中與除CPython外的Python解釋器不兼容的模塊數(shù)量太多。
Warsaw說(shuō),Keith-Magee提出了許多很好的觀點(diǎn),并認(rèn)為重要的是要考慮Python如何與新平臺(tái)——手機(jī)、平板電腦以及諸如WebAssembly等較新的web技術(shù)——保持相關(guān)性。
“目前,Python在這方面并沒有做得很好,”Warsaw說(shuō),他希望能夠?yàn)?a target="_blank">iPhone或Android手機(jī)下載一款應(yīng)用程序,“甚至不知道它是用Python編寫的”。
隨著現(xiàn)代芯片中處理器核的數(shù)量不斷攀升(英特爾最新的服務(wù)器產(chǎn)品中處理器核的數(shù)量達(dá)到了48個(gè)),Warsaw也希望Python能夠更好地將任務(wù)分散到多個(gè)核上。
他對(duì)Eric Snow在子解釋器方面的工作潛力以及如何擴(kuò)展Python并行運(yùn)行代碼的能力感到興奮。他說(shuō):“我真正希望看到的是更多能夠利用多核心的工作?!?/p>
Snow參與了一個(gè)長(zhǎng)期項(xiàng)目,旨在使Python更容易地在多個(gè)處理器核心之間有效地分割任務(wù)。Snow 專注于使用 Python 現(xiàn)有的子解釋器功能的重新編寫版本,并改變每個(gè)子解釋器與GIL交互的方式。
Warsaw說(shuō):“它還沒為Python 3.8完全準(zhǔn)備好,也許3.9就可以了?!薄拔艺J(rèn)為,我們將在未來(lái)兩到兩年半的時(shí)間里看到這一點(diǎn)。我很樂觀。我真的很高興Eric能繼續(xù)從事這個(gè)項(xiàng)目,因?yàn)槲艺J(rèn)為這是一項(xiàng)重要的工作?!?/p>
Python社區(qū)還在采取措施,對(duì)內(nèi)置代碼的標(biāo)準(zhǔn)庫(kù)進(jìn)行現(xiàn)代化,他們最近發(fā)布了一項(xiàng)提案,建議從庫(kù)中刪除過(guò)時(shí)的模塊;這樣做解決了最近對(duì)Python標(biāo)準(zhǔn)庫(kù)狀態(tài)的一些批評(píng)。這個(gè)庫(kù)通常被認(rèn)為是Python的優(yōu)勢(shì)之一,因?yàn)樗梢杂糜趫?zhí)行廣泛的常見任務(wù)。然而,在今年的Python語(yǔ)言峰會(huì)上,有人提出了這樣一個(gè)問(wèn)題:如果允許人們從PyPI存儲(chǔ)庫(kù)中選擇代碼庫(kù),而不是將該語(yǔ)言的功能捆綁為標(biāo)準(zhǔn)庫(kù),是否會(huì)對(duì)Python更好。
還有一個(gè)問(wèn)題是,監(jiān)督語(yǔ)言開發(fā)的組織(Python核心開發(fā)人員和Python指導(dǎo)委員會(huì)),能否更好地反映2019年P(guān)ython用戶群的多樣性。
Warsaw說(shuō),最終,盡管有一個(gè)“仁慈的獨(dú)裁者”掌管一切這樣半開玩笑的說(shuō)法,但近年來(lái),Python的形成理念已經(jīng)從社區(qū)中涌現(xiàn)出來(lái),人們不斷推動(dòng)Python的可能性,打開新用途的大門。
他說(shuō):“這真的是從社區(qū)中冒出來(lái)的,而不是自上而下的。”
隨著指導(dǎo)委員會(huì)的成立和比以往任何時(shí)候都多的用戶基礎(chǔ),van Rossum樂觀地認(rèn)為“社區(qū)驅(qū)動(dòng)的語(yǔ)言進(jìn)化”將繼續(xù)“非常成功”。
Warsaw說(shuō),如果有人懷疑Python社區(qū)是否有能力繼續(xù)為該語(yǔ)言找到令人驚訝的新用途,那么他只需看看Python在幫助捕獲第一張黑洞圖像方面的作用。
“這讓我感到震驚。在Python社區(qū)中有幾個(gè)人,我認(rèn)為他們是Python的瘋狂科學(xué)家。他們總是在想,好吧,這是我今天能做的——我能把它推進(jìn)多遠(yuǎn)呢?”
-
python
+關(guān)注
關(guān)注
56文章
4801瀏覽量
84852 -
腳本語(yǔ)言
+關(guān)注
關(guān)注
0文章
48瀏覽量
8242 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6546
原文標(biāo)題:30年,Python正在吞食世界
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論