成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

聊聊技術(shù)寫作的個(gè)人體會(huì)

madthumb / 2681人閱讀

摘要:由此看來,的官方文檔就把當(dāng)成內(nèi)置函數(shù),這個(gè)認(rèn)識(shí)錯(cuò)誤是有根源的等到的時(shí)候,官方把錯(cuò)誤改正過來了,然而改得并不徹底。使用進(jìn)行判斷,結(jié)果為的才是內(nèi)置函數(shù)。


有群友問過,是什么原因使我開始寫技術(shù)公眾號(hào),又是什么動(dòng)力讓我堅(jiān)持寫的。

在我看來,寫作是一件不能敷衍的事,通過寫作來學(xué)習(xí),反而要比單純地學(xué)習(xí)的效果要好。為了寫成一篇“拿得出手”的文章,我要反復(fù)查找資料,閱讀與思考,拆解與整合,最終寫成的時(shí)候,也是知識(shí)的拼圖成型的時(shí)候。

所以,對(duì)我來說,寫作是一種咀嚼信息而后提煉知識(shí),最終拓展成技能與認(rèn)知的過程。雖然這個(gè)過程很緩慢,但曾經(jīng)的急進(jìn)方式并沒有速成的效果啊,不妨就這樣一文章一腳印地試試看咯。

除此之外,還有一個(gè)很重要的原因。文章是一種公共對(duì)話的媒介,它是一個(gè)展示的窗口,也是一個(gè)接收反饋的通道。通過寫作,我有了跟其它學(xué)習(xí)者對(duì)話的機(jī)會(huì)。

看書學(xué)習(xí)可能只是個(gè)人的事情,但是,在寫作平臺(tái)上發(fā)布文章,這就超越了個(gè)人行為——你得隨時(shí)準(zhǔn)備著被批評(píng)、或者被請(qǐng)教、或者被誤解、甚至是被無視(這是最常見的結(jié)果)。

我享受寫作文章,來跟其他處在相同處境的同學(xué)們交流,來向更優(yōu)秀的大牛們學(xué)習(xí)取經(jīng)。

這就是我目前寫技術(shù)文章的一些個(gè)人體會(huì)吧。

對(duì)于上面提到的第二個(gè)原因,我最近頗有感觸,想要多聊一些。為了更有針對(duì)性,本文姑且限定一個(gè)話題吧,那就是“寫作技術(shù)文章,如何看待他人的批評(píng)/意見”。

1、主觀性的意見

有些聲音其實(shí)只是主觀看法,我認(rèn)為可以和而不同。

主觀世界往往沒有確切的對(duì)錯(cuò)之分,畢竟——思想無罪 。

面對(duì)主觀性的意見,我認(rèn)為要做到有理有據(jù),堅(jiān)持一點(diǎn)個(gè)性,最后會(huì)得到別人的尊重。

比如,在翻譯 Python 社區(qū)的七種治理模式的時(shí)候,有一個(gè)提案是“Python Governance Model Lead by Trio of Pythonistas”,我將它翻譯成“三巨頭治理模式”。有同學(xué)就指出,“Trio”應(yīng)該翻譯成“三人組”或者“三重奏”,翻譯成“三巨頭”是什么意思?

這種留言,我認(rèn)為是主觀性的意見,應(yīng)求同存異。

我之所以這么翻譯,一方面考慮,它要替代的是“終身仁慈獨(dú)裁者”,三巨頭對(duì)獨(dú)裁者,意味深長(zhǎng);另一方面,我腦子里總想著一個(gè)皇帝死了,然后政權(quán)被三個(gè)攝政大臣把持,這種政治畫面揮之不去,雖然是不著邊際,但挺有趣味,所以我不肯放棄這“三巨頭”的譯法。

主觀性的意見帶入了提出者的個(gè)人知識(shí)背景、思想結(jié)構(gòu)、以及話語習(xí)慣等等,我覺得要先嘗試交流,相互交換,能融洽兼容則最好啦,不能的話,及時(shí)終止。

2、客觀性的意見

客觀性的意見有如下幾種:筆誤(錯(cuò)別字和其它疏忽)、代碼規(guī)范、知識(shí)性錯(cuò)誤......

對(duì)于筆誤性的錯(cuò)誤,這沒啥好說的,我自己發(fā)現(xiàn)過幾處,也被讀者指出過幾處。有則改之就好。

對(duì)于代碼規(guī)范,有時(shí)候?yàn)榱伺e例方便,確實(shí)沒有按照規(guī)范來。盡量避免,求一個(gè)兼顧。

知識(shí)性錯(cuò)誤是要熱烈歡迎的——不是說歡迎錯(cuò)誤,而是說歡迎別人來指出我所未知的錯(cuò)誤。

出現(xiàn)知識(shí)性的錯(cuò)誤,就意味著沒有全面掌握知識(shí),一旦出現(xiàn),就必然意味著有提升的空間。本來以為知道了什么,如果被指出了錯(cuò)誤,那改正后,才是真的知道了什么。

知道自己不知道并且改正之,并不可恥,不知道自己不知道,這才可憐。

在寫《Python是否支持復(fù)制字符串呢?》的時(shí)候,我根據(jù)已得的知識(shí),以及查閱到的資料,早早就得出了一個(gè)很滿意的結(jié)論。最后成文前,臨時(shí)地加了一個(gè)未作驗(yàn)證的示例,沒想到這會(huì)是一個(gè)致命的反例,推翻了前面辛辛苦苦建立起來的一切。

這是一個(gè)客觀性的錯(cuò)誤,一被指出的時(shí)候,很快就能驗(yàn)證。因?yàn)檫@個(gè)錯(cuò)誤,我重新梳理了相關(guān)的知識(shí)點(diǎn),組成新的知識(shí)面,寫成了一篇《join()方法的神奇用處與Intern機(jī)制的軟肋》。

還有一個(gè)例子,前不久的《Python進(jìn)階:自定義對(duì)象實(shí)現(xiàn)切片功能》,我在準(zhǔn)備素材的時(shí)候,竟采用了一個(gè)不嚴(yán)謹(jǐn)?shù)睦?,而且自作聰明地批判了別人的實(shí)際無誤的例子。最后,有讀者留言了很長(zhǎng)的不同觀點(diǎn),我才意識(shí)到自己的錯(cuò)誤!

得益于讀者的留言,我修正了自己的錯(cuò)誤,而且在修正過程中,也加強(qiáng)了對(duì)于其它知識(shí)的理解,真是塞翁失馬焉知非福啊。

3、內(nèi)置函數(shù)與內(nèi)置類

這里還有一個(gè)客觀性錯(cuò)誤,藏得特別深,可能真的有 90% 的 Python 使用者不知道。

特別感謝 @xpresslink 同學(xué)指出。下面,我給大家分享一下。

在文章《為什么range不是迭代器?range到底是什么類型?》里,我的注意點(diǎn)其實(shí)就在標(biāo)題的兩個(gè)問句里,大部分的留言互動(dòng)也是基于此。但最后,很意外地,一名讀者指出了一個(gè)客觀性錯(cuò)誤,讓我有了額外的收獲。

這位同學(xué)指出我有些基本的概念是錯(cuò)誤的:

“range() 函數(shù)”這個(gè)說法是非常明顯有錯(cuò)誤的,range 不是內(nèi)置函數(shù)( builtin method )而是個(gè)類對(duì)象,在 python 里面不要見到用括號(hào)調(diào)用的東西就認(rèn)為是函數(shù),類似的還是有很多,如 list, set, tuple, dict 等,這些都是類, 特別是 enumerate ,這個(gè)學(xué) python 的人十有八九認(rèn)為是函數(shù)而不知道是類,加了括號(hào)是實(shí)例化而不是函數(shù)調(diào)用。

python 中類的實(shí)例化和函數(shù)調(diào)用非常容易對(duì)新手有大的迷惑性,相對(duì)來說在 java 中有明確的 new 關(guān)鍵字加在構(gòu)造方法前面概念更清楚一些。

根據(jù)這個(gè)評(píng)論,我就去查看文檔。

上圖中 range() 雖然被歸類到 Built-in Functions 里面,但是官方描述的是“functions and types”,即是說,在內(nèi)置函數(shù)的大類下面,包含了內(nèi)置函數(shù)與內(nèi)置類。

那 range() 屬于哪一種呢?看看它的解釋:

Rather than being a function, range is actually an immutable sequence type...... 

range 實(shí)際是一種不可變的序列類型,而非一個(gè)(內(nèi)置)函數(shù)......

按照這里的說法,官方已經(jīng)區(qū)分了 range() 不是函數(shù),正像那位留言的同學(xué)所說。

我第一反應(yīng)當(dāng)然是不能接受。我怎么會(huì)認(rèn)為它是內(nèi)置函數(shù)的呢,難道不是根據(jù)學(xué)習(xí)資料得來的么?難道我學(xué)習(xí)的資料是錯(cuò)的?為何從來沒看到有人對(duì)此做過辨析呢?

根據(jù)群友的提示,我去查看 Python2 的文檔,然后就發(fā)現(xiàn)了很有意思的地方:

首先一點(diǎn), Built-in Functions 的描述跟 Python3 有點(diǎn)不同,它寫的是 “functions”,并不包含“types”;還有一點(diǎn),在 range() 和 xrange() 的具體內(nèi)容中,官方都是稱呼它們?yōu)?function 。

由此看來,Python2 的官方文檔就把 range() 當(dāng)成內(nèi)置函數(shù),這個(gè)認(rèn)識(shí)錯(cuò)誤是有根源的!等到 Python3 的時(shí)候,官方把錯(cuò)誤改正過來了,然而改得并不徹底。才有了前面同時(shí)存在“functions and types”的描述。

官方已經(jīng)把 range() 與 xrange() 規(guī)范為一個(gè),或許在今后版本,還會(huì)專門分出一類 Built-in Types 來存放像 range() 和 enumerate() 這些內(nèi)置類吧。

在那之前,我只能先行給大家提個(gè)醒了:別再誤以為 range() 是內(nèi)置函數(shù)了。

那么,怎么辨別哪些是內(nèi)置函數(shù)呢?

我想到了兩個(gè)方法:

(1)看是否存在對(duì)應(yīng)的魔術(shù)方法。例如,len() 是一個(gè)內(nèi)置函數(shù),因?yàn)樗鼘?shí)際調(diào)用的是魔術(shù)方法__len__() ;還有最近一直在提的 iter(),它調(diào)用的是__iter__() ,所以也是內(nèi)置函數(shù);而因?yàn)椴淮嬖?__range__() 魔術(shù)方法,所以 range() 不是內(nèi)置函數(shù)。

(2)使用 type() 進(jìn)行判斷,結(jié)果為 builtin_function_or_method 的才是內(nèi)置函數(shù)。

>>> type(len)
builtin_function_or_method
>>> type(sorted)
builtin_function_or_method
>>> type(open)
builtin_function_or_method

>>> type(range)
type
>>> type(enumerate)
type
>>> type(str)
type

像 open 和 sorted 并沒有對(duì)應(yīng)的魔術(shù)方法,但判斷出來都是內(nèi)置函數(shù);而 str 雖有對(duì)應(yīng)魔術(shù)方法,但判斷是 type ,這意味著,以上兩種方法得要結(jié)合起來看。

我不確定有多少人事先知道怎么區(qū)分內(nèi)置函數(shù)與內(nèi)置類,但我確實(shí)沒看到過對(duì)這個(gè)問題進(jìn)行辨析的文章,所以,這次是真正漲知識(shí)了,也希望這篇文章,能夠消除一些讀者的錯(cuò)誤觀念吧。

4、小結(jié)

我最近寫的一些文章都不是心血來潮,不管是字符串系列、切片系列還是迭代器系列,本意都是想在一個(gè)主題上進(jìn)行深入的多面性的思考與記錄。

如果沒有一些熱心讀者的指正,我恐怕是很難知道自己錯(cuò)在了哪里,如果不是有這么多的認(rèn)同以及意見,我恐怕也缺乏動(dòng)力堅(jiān)持寫下去。

最后鳴謝幾位提意見的小能手同學(xué)(時(shí)間順序,可能有漏):@瘋琴、@德瑪西亞之翼奎因、@發(fā)條橙、@gaieepo、@郭芮、@aijam、@xpresslink、@進(jìn)擊的團(tuán)子、@不換......

相關(guān)鏈接(單有錯(cuò),雙修正):

1、Python是否支持復(fù)制字符串呢?

2、join()方法的神奇用處與Intern機(jī)制的軟肋

3、Python進(jìn)階:自定義對(duì)象實(shí)現(xiàn)切片功能

4、Python進(jìn)階:全面解讀高級(jí)特性之切片!

5、為什么range不是迭代器?range到底是什么類型?

-----------------

本文原創(chuàng)并首發(fā)于微信公眾號(hào)【Python貓】,后臺(tái)回復(fù)“愛學(xué)習(xí)”,免費(fèi)獲得20+本精選電子書。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42977.html

相關(guān)文章

  • 四個(gè)月技術(shù)寫作,我寫了些什么?

    摘要:因?yàn)榍宄匾庾R(shí)到自己的基礎(chǔ)并不扎實(shí),所以,幾個(gè)月以來,我花了不少時(shí)間系統(tǒng)性地學(xué)習(xí)了一些內(nèi)容。時(shí)間過得真快,現(xiàn)在能拿得出手的也就僅僅是字符串系列切片系列和迭代器系列了。關(guān)于技術(shù)寫作和翻譯,我初見門道,今后還會(huì)多作總結(jié)分享。 showImg(https://segmentfault.com/img/bVbn6bh?w=4167&h=2569); 從去年國(guó)慶節(jié)開始,我連續(xù)更新了 4 個(gè)月公眾...

    bingchen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<