日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python is 和 ==區(qū)別

系統(tǒng) 1762 0

s 與 == 區(qū)別 :

is 用于判斷兩個變量引用對象是否為同一個, == 用于判斷引用變量的值是否相等。

a is b 相當(dāng)于 id(a)==id(b), id() 能夠獲取對象的內(nèi)存地址。

如果 a=10;b=a; 則此時 a 和 b 的內(nèi)存地址一樣的;

但當(dāng) a=[1,2,3]; 另 b=a[:] 時,雖然 a 和 b 的值一樣,但內(nèi)存地址不一樣。

如果此時定義 a=10、b=10, 然后再對比 a is b 會發(fā)現(xiàn)返回的結(jié)果是 True,這是因為在 Python 中會實現(xiàn)創(chuàng)建一個小型的整形池,范圍為 [-5,256],為這些整形開辟好內(nèi)存空間,當(dāng)代碼中定義該范圍內(nèi)的整形時,不會再重新分配內(nèi)存地址。而我在 Pycharm 中進(jìn)行測試:

          
            #coding=utf-8
            
              
a
              
                =
                
                  100000000000
                  
                    ;
                    
                       b
                      
                        =
                        
                          100000000000
                          
                            ;
                            
                              
                                print
                                
                                   a 
                                  
                                    is
                                    
                                       b
                                    
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        

結(jié)果:

          
            True
          
        

后來查了資料才發(fā)現(xiàn)是:Python出于對性能的考慮,但凡是不可變對象,在同一個代碼塊中的對象,只有是值相同的對象,就不會重復(fù)創(chuàng)建,而是直接引用已經(jīng)存在的對象。

            >>> a = 1 
            
              #
            
            
              a和b為數(shù)值類型
            
            
>>> b = 1
>>> a 
            
              is
            
            
               b
True

            
            >>>
            
               id(a)

            
            >>>
            
               id(b)

            
            >>> a = 
            
              '
            
            
              cheesezh
            
            
              '
            
            
              #
            
            
              a和b為字符串類型
            
            
>>> b = 
            
              '
            
            
              cheesezh
            
            
              '
            
            
>>> a 
            
              is
            
            
               b
True

            
            >>>
            
               id(a)

            
            >>>
            
               id(b)

            
            >>> a = (1,2,3) 
            
              #
            
            
              a和b為元組類型
            
            
>>> b = (1,2,3
            
              )

            
            >>> a 
            
              is
            
            
               b
False

            
            >>>
            
               id(a)

            
            >>>
            
               id(b)

            
            >>> a = [1,2,3] 
            
              #
            
            
              a和b為list類型
            
            
>>> b = [1,2,3
            
              ]

            
            >>> a 
            
              is
            
            
               b
False

            
            >>>
            
               id(a)

            
            >>>
            
               id(b)

            
            >>> a = {
            
              '
            
            
              cheese
            
            
              '
            
            :1,
            
              '
            
            
              zh
            
            
              '
            
            :2} 
            
              #
            
            
              a和b為dict類型
            
            
>>> b = {
            
              '
            
            
              cheese
            
            
              '
            
            :1,
            
              '
            
            
              zh
            
            
              '
            
            :2
            
              }

            
            >>> a 
            
              is
            
            
               b
False

            
            >>>
            
               id(a)

            
            >>>
            
               id(b)

            
            >>> a = set([1,2,3])
            
              #
            
            
              a和b為set類型
            
            
>>> b = set([1,2,3
            
              ])

            
            >>> a 
            
              is
            
            
               b
False

            
            >>>
            
               id(a)

            
            >>> id(b)
          

只有數(shù)值型和字符串型的情況下,a is b才為True,當(dāng)a和b是tuple,list,dict或set型時,a is b為False。

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 大安市| 大姚县| 镇巴县| 焉耆| 新泰市| 台南县| 呼图壁县| 重庆市| 六枝特区| 磐石市| 元朗区| 瑞昌市| 永德县| 德兴市| 凉山| 商丘市| 涿鹿县| 潼南县| 左云县| 蓬安县| 苍南县| 阿图什市| 长岭县| 岳普湖县| 额济纳旗| 合川市| 张北县| 阳江市| 广宁县| 遂平县| 册亨县| 台东县| 太白县| 山阳县| 新宾| 建德市| 西城区| 和田县| 阳东县| 承德市| 黄山市|