5個有趣的Python小知識,結果令人意外


5個有趣的Python小知識,結果令人意外

1 字符串駐留

5個有趣的Python小知識,結果令人意外

如果上面例子返回True,但是下面例子為什麼是False:

5個有趣的Python小知識,結果令人意外

這與Cpython 編譯優化相關,行為稱為字符串駐留,但駐留的字符串中只包含字母,數字或下劃線。

2 相同值的不可變對象

5個有趣的Python小知識,結果令人意外

這是因為具有相同值的不可變對象在Python中始終具有相同的哈希值

由於存在哈希衝突,不同值的對象也可能具有相同的哈希值。注意:順便大家,很多人學Python過程中會遇到各種煩惱問題,沒有人解答容易放棄。為此我建了個python學習資源群裡面有最新學習資料,如果你想學python,可以關注我,後臺私信我 ‘py’ 自動獲取2020最新python教程資料!還有老司機解答哦!

3 對象銷燬順序

創建一個類SE:

5個有趣的Python小知識,結果令人意外

創建兩個SE實例,使用is判斷:

5個有趣的Python小知識,結果令人意外

創建兩個SE實例,使用id判斷:

5個有趣的Python小知識,結果令人意外

調用id函數, Python 創建一個 SE 類的實例,並使用id函數獲得內存地址後,銷燬內存丟棄這個對象。

當連續兩次進行此操作, Python會將相同的內存地址分配給第二個對象,所以兩個對象的id值是相同的。

但是is行為卻與之不同,通過打印順序就可以看到。

4 充分認識for  

5個有趣的Python小知識,結果令人意外

為什麼不是執行一次就退出?

按照for在Python中的工作方式, i = 10 並不會影響循環。range(5)生成的下一個元素就被解包,並賦值給目標列表的變量i.

5 認識執行時機

5個有趣的Python小知識,結果令人意外

g為生成器,list(g)後返回[1,3,5],因為每個元素肯定至少都出現一次。所以這個結果這不足為奇。但是,請看下例:

5個有趣的Python小知識,結果令人意外

請問,list(g)等於多少?這不是和上面那個例子結果一樣嗎,結果也是[1,3,5],但是:

5個有趣的Python小知識,結果令人意外

這有些不可思議

原因在於:生成器表達式中, in 子句在聲明時執行, 而條件子句則是在運行時執行。

所以代碼:

5個有趣的Python小知識,結果令人意外

等價於:

5個有趣的Python小知識,結果令人意外

看明白了嗎?

如果你處於想學Python或者正在學習Python,Python的教程不少了吧,但是是最新的嗎?

說不定你學了可能是兩年前人家就學過的內容,在這小編分享一波2020最新的Python教程。

5個有趣的Python小知識,結果令人意外

以上這些教程小編已經為大家打包準備好了,希望對正在學習的你有所幫助!

獲取方式: 點擊關注,然後私信小編 “ py ”,即可免費獲取哦!
本文的文字及圖片來源於網絡加上自己的想法,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。


分享到:


相關文章: