<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      =+’與‘+=’亦有不同

      ’=+‘就是a=a+1這類的操作
      ’+=‘就是a+=1這類的操作
      是不是看起來一樣?其實有點區(qū)別
      先看一個例子:

      a = [20, 50]
      print(id(a))  # 1932373650496
      a += [30]
      print(id(a))  # 1932373650496
      a = a + [56]
      print(id(a))  # 1932375047232
      a.append(45)
      print(id(a))  # 1932375047232
      def add(p):
          print '進來時,p的id是',id(p)
          p+=[1]
          print 'p執(zhí)行p+=[1]運算后的值為:',p
          print '加法后p的id是:',id(p)
      a=[1,3,3,3]
      print 'a進入函數(shù)前的id是:',id(a)
      add(a)
      print 'a進入函數(shù)后的值是:',a
      print 'a進入函數(shù)后的id是:',id(a)
      a進入函數(shù)前的id是: 116958664
      進來時,p的id是 116958664
      p執(zhí)行p=p+[1]運算后的值為: [1, 3, 3, 3, 1]
      加法后p的id是: 116958664
      a進入函數(shù)后的值是: [1, 3, 3, 3, 1]
      a進入函數(shù)后的id是: 116958664

      a的值是變了的,因為列表是可變對象,’+=‘操作是直接在a所指向的對象上進行修改,并沒有產(chǎn)生新的引用。

      def add(p):
          print '進來時,p的id是',id(p)
          p=p+[1]
          print 'p執(zhí)行p=p+[1]運算后的值為:',p
          print '加法后p的id是:',id(p)
      a=[1,3,3,3]
      print 'a進入函數(shù)前的id是:',id(a)
      add(a)
      print 'a進入函數(shù)后的值是:',a
      print 'a進入函數(shù)后的id是:',id(a)
      a進入函數(shù)前的id是: 186860104
      進來時,p的id是 186860104
      p執(zhí)行p=p+[1]運算后的值為: [1, 3, 3, 3, 1]
      加法后p的id是: 116958664
      a進入函數(shù)后的值是: [1, 3, 3, 3]
      a進入函數(shù)后的id是: 186860104

      發(fā)現(xiàn)a的值并沒有變,這是因為在執(zhí)行p=p+[1]時,有一個賦值動作’=‘,會產(chǎn)生一個新的對象,所以p這時已經(jīng)指向了別的對象,這也說明了python沒有賦值,它的賦值是產(chǎn)生一個新的對象。

      >>> a=[1,2,3]
      >>> b=[1,2,3]
      >>> id(a),id(b)
      (45735624L, 45791816L)
      >>> a=a+[2]
      >>> id(a)
      45793224L

      a,b都是將[1,2,3]付給a,b,但是他們分別產(chǎn)生了新的對象(id不同)。
      但是也有這樣的情況:

      >>> a=3
      >>> b=3
      >>> strA='asd'
      >>> strB='asd'
      >>> id(a),id(b)
      (38102392L, 38102392L)
      >>> id(strA),id(strB)
      (45829736L, 45829736L)

      發(fā)現(xiàn)他們的id一樣是不是,那是因為python對一些整型數(shù)字和字符串會進行緩存,使得他們id一樣,造成了他們沒有創(chuàng)建新對象的假象。

      繼續(xù)剛才’=+‘與’+=‘的話題,一開始我們是使用的列表,如果現(xiàn)在我使用元組呢:
      觀察結(jié)果:
      ’=+‘:

      def add(p):
          print '進來時,p的id是',id(p)
          p=p+(1,)
          print 'p執(zhí)行p=p+(1,)運算后的值為:',p
          print '加法后p的id是:',id(p)
      a=(1,3,3)
      print 'a進入函數(shù)前的id是:',id(a)
      add(a)
      print 'a進入函數(shù)后的值是:',a
      print 'a進入函數(shù)后的id是:',id(a)

      結(jié)果為:

      a進入函數(shù)前的id是: 186690296
      進來時,p的id是 186690296
      p執(zhí)行p=p=p+(1,)運算后的值為: (1, 3, 3, 1)
      加法后p的id是: 185401496
      a進入函數(shù)后的值是: (1, 3, 3)
      a進入函數(shù)后的id是: 186690296

      發(fā)現(xiàn)a一樣沒有發(fā)生改變,和a是list的情況一樣。
      再看’+=‘:

      def add(p):
          print '進來時,p的id是',id(p)
          p+=(1,)
          print 'p執(zhí)行p+=(1,)運算后的值為:',p
          print '加法后p的id是:',id(p)
      a=(1,3,3)
      print 'a進入函數(shù)前的id是:',id(a)
      add(a)
      print 'a進入函數(shù)后的值是:',a
      print 'a進入函數(shù)后的id是:',id(a)
      a進入函數(shù)前的id是: 186690656
      進來時,p的id是 186690656
      p執(zhí)行p+=(1,)運算后的值為: (1, 3, 3, 1)
      加法后p的id是: 185401496
      a進入函數(shù)后的值是: (1, 3, 3)
      a進入函數(shù)后的id是: 186690656

      欸,怎么a為元組和a為列表的情況不一樣,現(xiàn)在a沒有發(fā)生變化。那是因為元組是不可變對象,在執(zhí)行p+=(1,)時,無法對p之前指向的對象進行本地操作,只能創(chuàng)建一個新對象了。
      同樣的,字符串等不可變對象也是會產(chǎn)生一個新對象:
      如:

      >>> a="sd"
      >>> id(a)
      45643056L
      >>> a+='***'
      >>> id(a)
      45829016L

      好了,總結(jié)一下就是:
      1,python的賦值會產(chǎn)生一個新對象
      2,執(zhí)行’=+‘操作時會產(chǎn)生一個新對象
      3,執(zhí)行’+=‘操作時,對于可變對象,例如列表,其會對原對象進行本地修改值,不會產(chǎn)生新對象,而對于不可變對象,則會還是會產(chǎn)生新的對象。
      ————————————————

      版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

      原文鏈接:https://blog.csdn.net/jiruiYang/article/details/53019991

      posted @ 2025-04-15 19:57  涼天  閱讀(23)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品一区二区不卡无码AV| 乱色老熟妇一区二区三区| 亚洲熟女国产熟女二区三区| 97人妻精品一区二区三区| 欧洲国产成人久久精品综合| 国产精品自在线拍国产手机版| 一本无码av中文出轨人妻| 伊伊人成亚洲综合人网7777| 最新亚洲人成网站在线影院| 动漫av网站免费观看| 九色综合国产一区二区三区| 日韩最新中文字幕| 日韩狼人精品在线观看| 免费又大粗又爽又黄少妇毛片| 凌源市| 人人爽亚洲aⅴ人人爽av人人片| 欧美国产综合欧美视频| 日韩有码中文在线观看| 精品国产av无码一区二区三区 | 扒开女人内裤猛进猛出免费视频| 亚洲色婷婷综合久久| 日韩有码精品中文字幕| 达州市| 亚洲综合一区二区三区| 国产91久久精品一区二区| 欧美大胆老熟妇乱子伦视频| 夜夜爽77777妓女免费看| 欧美亚洲综合成人a∨在线| 精品熟女少妇免费久久| 日韩精品国内国产一区二| 亚洲日韩久久综合中文字幕| 久久综合亚洲鲁鲁九月天| 久久被窝亚洲精品爽爽爽| 亚洲无线码中文字幕在线| 88国产精品视频一区二区三区| 免费黄色大全一区二区三区 | 国产 另类 在线 欧美日韩| 一个人看的www视频免费观看| av午夜福利一片免费看久久 | 潘金莲高清dvd碟片| 成人午夜在线观看日韩|