Python隱藏特性 字串駐留 常量摺疊

2021-10-01 16:45:46 字數 929 閱讀 5560

下面是python字串的一些微妙的特性,絕對會讓你大吃一驚。

案例一:

>>> a = "some_string"

>>> id(a)

140420665652016

>>> id("some" + "_" + "string") # 注意兩個的id值是相同的.

140420665652016

案例二:

>>> a = "wtf"

>>> b = "wtf"

>>> a is b

true

>>> a = "wtf!"

>>> b = "wtf!"

>>> a is b

false

>>> a, b = "wtf!", "wtf!"

>>> a is b

true # 3.7 版本返回結果為 false.

案例三:

>>> 'a' * 20 is 'aaaaaaaaaaaaaaaaaaaa'

true

>>> 'a' * 21 is 'aaaaaaaaaaaaaaaaaaaaa'

false # 3.7 版本返回結果為 true

#>>> 'a' * 20 is 'aaaaaaaaaaaaaaaaaaaa'

true

>>> 'a' * 21 is 'aaaaaaaaaaaaaaaaaaaaa'

false # 3.7 版本返回結果為 true

#在學習python的過程中,往往因為沒有資料或者沒人指導從而導致自己不想學下去了,因此我特意準備了個群 592539176 ,群裡有大量的pdf書籍、教程都給大家免費使用!不管是學習到哪個階段的小夥伴都可以獲取到自己相對應的資料!

很好理解, 對吧?

? 說明:

關於字串駐留

首先看幾個例子 示例1 static void main 示例2 static void main 示例3 public const string s1 abc static void main 示例4 public static string s1 abc static void main 示例1...

字串駐留備忘

下面是個人的練習 字串拘留練習 by mcjeremy 宣告s1時,拘留池中沒有該字串,因此將它放進去 放進去後,string.isintered s1 將返回該字串值 string s1 abc123 宣告s2時,由於拘留池中已經有該字串存在,因此不再分配記憶體 s2和s1將指向同乙個引用 str...

C 中字串駐留技術

msdn概念 公共語言執行庫通過維護乙個表來存放字串,該錶稱為拘留池,它包含程式中以程式設計方式宣告或建立的每個唯一的字串的乙個引用。因此,具有特定值的字串的例項在系統中只有乙個。上面的概念不好理解,我們還是從基礎說起 一 眾所周知,c 中的string是乙個引用型別,string物件存放在堆上,而...