一份鮮為人知的Python特性
GitHub 上有個非常牛逼的倉庫,作者收集了很多有趣且鮮為人知的 Python “特性”。這些特性有些是真正的特性,也有些是陷阱,因為光從表面看起來就覺得反人類直覺,而所有的一切,其實都是 Cpython 內部實現中利弊之間的的權衡,有優點就有缺點。舉個和字串相關的特別例子:
>>> a = "wtf"
>>> b = "wtf"
>>> a is b
True
這個比較好理解,a 和 b 指向同一個物件。
>>> a = "wtf!"
>>> b = "wtf!"
>>> a is b
False
多了一個感嘆號❗,兩個變數指向的就不是同一個物件了。
再來看:
>>> a, b = "wtf!", "wtf!"
>>> a is b
True
如果把兩個變數寫在一行,又指向同一個物件了。初學者看了一臉懵逼,即使你是有經驗的 Python 開發者,第一次見到這種情況也會大為驚訝,原來 Python 中還有如此騷操作。 如果把程式碼放在IDE中執行,結果又不一樣:
a = "wtf!"
b = "wtf!"
print(a is b) # True
輸出結果是 True,是不是覺得太匪夷所思了。 其實,這裡面涉及到的知識點是CPython 為了提高效能對字串物件做的優化,涉及到字串的 intern 機制,還有程式碼塊的知識等概念。
當然這個庫還總結了很多很多類似讓你驚訝的操作,比如關於雜湊操作,有關字典特性,預設可變引數陷阱等等。總共有近100來個知識點總結。強烈建議大家好好研讀,有利於對 Pytho 的進一步提高。目前這個庫已經有將近10000萬人關注,而且現在有網友提供了中文版了,這無疑給了不習慣閱讀英語閱的人有一個利好訊息。
英文地址:https://github.com/satwikkansal/wtfpython
中文地址:https://github.com/leisurelicht/wtfpython-cn
方便你閱讀,我將其製作了一份PDF格式了,方便你離線閱讀。你可以在微信公眾號「Python之禪」後臺回覆關鍵詞「2」獲取這本電子書!
推薦閱讀
優秀如你都在關注
相關文章
- Python:鮮為人知的功能特性(下)Python
- 有趣且鮮為人知的 Python “特性”Python
- Python:鮮為人知的功能特性(上)Python
- 鮮為人知的 PostgreSQL 特性 - hakibenitaSQL
- 5個鮮為人知Java集合特性Java
- 鮮為人知的 Python 語法Python
- 鮮為人知的python位運算Python
- 鮮為人知的JavaScript功能JavaScript
- [譯] 鮮為人知的資料科學 Python 庫資料科學Python
- 這9個鮮為人知的Python庫,你用過幾個?Python
- 推薦六個鮮為人知的 Composer 命令
- 十個鮮為人知的Linux命令 - Part 5Linux
- 鮮為人知的軟體專案管理原則專案管理
- SQL Server 2012鮮為人知的兩個功能MOSQLServer
- 11 個鮮為人知卻超實用的 Linux 命令!Linux
- 那些功能逆天,卻鮮為人知的pandas騷操作
- 這些鮮為人知的前端冷知識,你都GET了嗎?前端
- 有哪些鮮為人知,但是很有意思的網站?網站
- (騷操作)Laravel 中一個鮮為人知的雞肋功能Laravel
- 八款堪稱「神器」,卻鮮為人知的辦公利器!
- 介紹鮮為人知但功能強大的 Git 技術Git
- 5 個鮮為人知 GNU 偵錯程式(GDB)技巧
- 二級指標與ARC不為人知的特性指標
- 鮮為人知的Word快捷操做技巧 知道的都是辦公高手
- 中老年人群鮮為人知的六個性行為統計資料
- 鮮為人知的光伏產業幕後百億市值大贏家產業
- 鮮為人知的HTTP協議頭欄位詳解大全「原創」HTTP協議
- Spring核心原理之 IoC容器中那些鮮為人知的細節(3)Spring
- 鑄博皇御:鮮為人知的現貨黃金投資策略
- 任天堂鮮為人知的產品哲學:創意比技術更重要
- 30秒一臺PS4!揭秘鮮為人知的索尼機器人工廠機器人
- 開羅遊戲:鮮為人知的誕生之路和未公開的神祕作品遊戲
- 警惕!Python 中少為人知的 10 個安全陷阱!Python
- 盤點Win10小技巧:幾組鮮為人知的Win10小技巧介紹Win10
- 不為人知的 Linus 大神
- 五角大樓超級士兵專案的背後:一段鮮為人知的歷史
- TiDB 4.0 新特性嚐鮮指南TiDB
- 表面光鮮,實則搬磚,機器學習社群自嘲不為人知的AI工程師真相機器學習AI工程師