python 代碼可視化執(zhí)行

http://www.pythontutor.com/visualize.html 網(wǎng)站提供了 Python哀峻、C飒炎、C++ 因妙、Java荐操、Ruby 等不同語(yǔ)言的執(zhí)行可視化在線服務(wù)诅妹,對(duì)于理清或演示某些概念很有幫助罚勾。使用一個(gè)簡(jiǎn)單的示例來(lái)進(jìn)行說(shuō)明毅人。

python 的 list 是一個(gè)容器,對(duì) list 的賦值操作使得兩個(gè)變量都指向同一個(gè)對(duì)象尖殃。比如下面的代碼:

a = [1,2,3, ["Jan","Feb", "Mar"]]
b = a

a.append(4)
print (a)
print (b)

a 賦值給 b 后丈莺,對(duì) b 的改變后, print (b) 的結(jié)果是什么送丰?

在網(wǎng)站輸入以上代碼缔俄,點(diǎn)擊 Visualize Execution 按鈕,進(jìn)入下面的界面:

image

在左邊器躏,紅色箭頭指向下一步要執(zhí)行的代碼俐载,最下面顯示一共有 5 步,目前在第 1 步登失。點(diǎn)擊 Next 按鈕:

image

創(chuàng)建一個(gè) list 對(duì)象實(shí)例遏佣,同時(shí)在 global frame 中有一個(gè)變量 a 指向這個(gè) list。list offset 為 3 的元素是另外一個(gè) list揽浙,所以有另外一個(gè)參照的箭頭贼急。

點(diǎn)擊 Next 按鈕,執(zhí)行 b = a:

image

現(xiàn)在 b 和 a 都指向 list 對(duì)象實(shí)例捏萍。

再點(diǎn)擊 Next 按鈕執(zhí)行 print 語(yǔ)句太抓,在 Output 區(qū)域輸出了 a 的結(jié)果。

image

點(diǎn)擊 Next 按鈕令杈,執(zhí)行 print (b)走敌,可以看到 b 的輸出和 a 一樣,因?yàn)樗鼈兌贾赶蛲粋€(gè)對(duì)象逗噩。

image

用可視化執(zhí)行理解 python 的淺拷貝和深拷貝

將上述代碼修改如下:

import copy

a = [1,2,3, ["Jan","Feb","Mar"]]
b = copy.copy(a)

a.append(4)
print (a)
print (b)

copy.copy() 方法執(zhí)行對(duì)象的淺拷貝:淺拷貝針對(duì)包含其他對(duì)象的對(duì)象來(lái)說(shuō)掉丽,對(duì)象本身拷貝,但對(duì)象包含的對(duì)象仍然是相同的引用(只拷貝最上層)异雁。以上代碼演示了淺拷貝捶障。在可視化執(zhí)行中顯示如下:

執(zhí)行了對(duì) a 的賦值后界面如下:

image

執(zhí)行了 淺拷貝的界面如下:

image

將代碼改為深拷貝。深拷貝的意思是對(duì)象本身和對(duì)象所包含的對(duì)象全部會(huì)被拷貝纲刀。

import copy

a = [1,2,3, ["Jan","Feb","Mar"]]
b = copy.deepcopy(a)

a.append(4)
print (a)
print (b)

可視化化執(zhí)行项炼,可以看到對(duì)象、子對(duì)象全部被創(chuàng)建:

在這里插入圖片描述
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末示绊,一起剝皮案震驚了整個(gè)濱河市锭部,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌面褐,老刑警劉巖拌禾,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異展哭,居然都是意外死亡湃窍,警方通過(guò)查閱死者的電腦和手機(jī)闻蛀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)您市,“玉大人循榆,你說(shuō)我怎么就攤上這事∧幔” “怎么了秧饮?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)泽篮。 經(jīng)常有香客問(wèn)我盗尸,道長(zhǎng),這世上最難降的妖魔是什么帽撑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任泼各,我火速辦了婚禮,結(jié)果婚禮上亏拉,老公的妹妹穿的比我還像新娘扣蜻。我一直安慰自己,他們只是感情好及塘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布莽使。 她就那樣靜靜地躺著,像睡著了一般笙僚。 火紅的嫁衣襯著肌膚如雪芳肌。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,624評(píng)論 1 305
  • 那天肋层,我揣著相機(jī)與錄音亿笤,去河邊找鬼。 笑死栋猖,一個(gè)胖子當(dāng)著我的面吹牛净薛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蒲拉,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼肃拜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了全陨?” 一聲冷哼從身側(cè)響起爆班,我...
    開(kāi)封第一講書(shū)人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辱姨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體戚嗅,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雨涛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年枢舶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片替久。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凉泄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚯根,到底是詐尸還是另有隱情后众,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布颅拦,位于F島的核電站蒂誉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏距帅。R本人自食惡果不足惜右锨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碌秸。 院中可真熱鬧绍移,春花似錦、人聲如沸讥电。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)恩敌。三九已至恼策,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間潮剪,已是汗流浹背涣楷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抗碰,地道東北人狮斗。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像弧蝇,于是被迫代替她去往敵國(guó)和親碳褒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫(xiě)完項(xiàng)目接著寫(xiě)寫(xiě)一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,579評(píng)論 1 118
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,103評(píng)論 1 32
  • 一看疗、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,746評(píng)論 0 10
  • 嫻的昆明 今年托湖南省人民政府的福沙峻,所有的公職人員按年假制度休假。去年因?yàn)樘卮蠛闉?zāi)两芳,我的年假也泡湯摔寨,今年...
    Jace_0935閱讀 358評(píng)論 1 2
  • 好吧是复,所以出完這張專輯跟全球巡演后BANE就徹底解散了删顶。 BANE是陪伴著我長(zhǎng)大的樂(lè)隊(duì)之一,雖然他們出來(lái)混的時(shí)候我...
    有演出閱讀 285評(píng)論 0 1