• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            糯米

            TI DaVinci, gstreamer, ffmpeg
            隨筆 - 167, 文章 - 0, 評(píng)論 - 47, 引用 - 0
            數(shù)據(jù)加載中……

            python中最容易讓人火大的兩個(gè)問(wèn)題

            1. list對(duì)象的*操作符
            >>> a = [[1]]*10
            >>> a
            [[
            1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
            >>> a[1][0] = 2
            >>> a
            [[
            2], [2], [2], [2], [2], [2], [2], [2], [2], [2]]
            >>>
            也就是說(shuō),這10個(gè)對(duì)象實(shí)際上是指向的同一個(gè)list對(duì)象。
            這是bug,還是feature?或者是優(yōu)化?
            總之是蠻讓人火大的就是了。
            用 a = [[0] for x in range(10)] 這種寫法就沒有這個(gè)問(wèn)題了。


            2. 深拷貝
            >>> a = [[0] for x in range(10)]
            >>> a
            [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
            >>> b = list(a)
            >>> b
            [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
            >>> a[1][0] = 2
            >>> b
            [[0], [
            2], [0], [0], [0], [0], [0], [0], [0], [0]]
            >>> 
            b = list(a)
            意味著a和b中都存放這10個(gè)指針。指向[0], [0], [0] .... 這10個(gè)對(duì)象。
            a[1][0] = 2 后 a 自己的值沒有改變,改變的是第二個(gè) [0] 對(duì)象。
            由于 b 也是指向它的,所以打印b的時(shí)候會(huì)發(fā)現(xiàn)這一點(diǎn)。
            這個(gè)問(wèn)題是自己經(jīng)常犯的問(wèn)題,大多都是debug半天才知道怎么回事。
            使用
            import copy
            b = copy.deepcopy(a)
            可以解決這個(gè)問(wèn)題。

            3. 如何避免這些問(wèn)題
            要時(shí)刻記得,python中的對(duì)象就只有兩種,mutable和immutable。也就是可改變和不可改變。
            immutable的包括:str  tuple  int ...
            mutable可改變的包括:list dict ...
            immutable的就是原子的。mutable里面存放的都是指向mutable或者immutable的指針。
            調(diào)試的時(shí)候,可以使用id(obj)獲得每個(gè)對(duì)象的id。這個(gè)貌似就是python管理的運(yùn)行時(shí)的對(duì)象的地址。
            如果發(fā)現(xiàn)兩個(gè)obj的id相同,那他們就是同一個(gè)貨。。

            posted on 2011-02-08 15:38 糯米 閱讀(415) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Python


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久精品无码免费不卡| 久久亚洲欧美日本精品| 漂亮人妻被中出中文字幕久久| 久久精品国产AV一区二区三区| 国产高潮国产高潮久久久| 久久免费99精品国产自在现线 | 色综合久久久久久久久五月| 国产精品狼人久久久久影院 | 亚洲欧美一级久久精品| 国产午夜久久影院| 色综合久久久久综合体桃花网| 久久亚洲精精品中文字幕| 欧美久久久久久| 久久精品中文字幕一区| A级毛片无码久久精品免费| 中文精品99久久国产 | 久久精品成人免费观看97| 久久精品无码一区二区WWW| 国产精品久久网| 久久国产精品国产自线拍免费| 久久免费香蕉视频| 久久91亚洲人成电影网站| 东方aⅴ免费观看久久av| 国产女人aaa级久久久级| 久久亚洲精品中文字幕| 久久精品国产亚洲αv忘忧草 | 久久99国产精品成人欧美| 日本久久久久久中文字幕| 久久亚洲春色中文字幕久久久| 日本亚洲色大成网站WWW久久 | 国产精品久久久久久福利漫画 | 亚洲国产精品成人久久蜜臀| 久久国产精品国产自线拍免费| 午夜精品久久久久久久久| 精品久久久无码人妻中文字幕| 久久久久久久综合综合狠狠| 91亚洲国产成人久久精品网址| 久久精品这里只有精99品| 91精品免费久久久久久久久| 精品久久香蕉国产线看观看亚洲 | 久久久久久久精品成人热色戒|