国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python中表達(dá)式x += y和x = x+y 的區(qū)別詳解

2020-01-04 16:52:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

本文主要給大家介紹的是關(guān)于Python中表達(dá)式x += y和x = x+y 區(qū)別的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面來(lái)看看詳細(xì)的介紹:

直接看下面代碼:

x +=y

In [66]: id(a)Out[66]: 4476839480In [67]: id(b)Out[67]: 4476839480In [68]: a = [1, 2, 3]In [69]: b = aIn [70]: id(a)Out[70]: 4477149984In [71]: id(b)Out[71]: 4477149984In [72]: a += [4, 5, 6]In [73]: aOut[73]: [1, 2, 3, 4, 5, 6]In [74]: bOut[74]: [1, 2, 3, 4, 5, 6]In [75]: id(a)Out[75]: 4477149984In [76]: id(b)Out[76]: 4477149984

x = x + y

In [77]: a = [1, 2, 3]In [78]: b = aIn [79]: id(a)Out[79]: 4476686208In [80]: id(b)Out[80]: 4476686208In [81]: a = a + [4, 5, 6]In [82]: aOut[82]: [1, 2, 3, 4, 5, 6]In [83]: bOut[83]: [1, 2, 3]In [84]: id(a)Out[84]: 4477187640In [85]: id(b)Out[85]: 4476686208

可以看出對(duì)于可變對(duì)象而言 x = x + y 這種形式已經(jīng)改變了x的指向,而不是"inplace"的修改。

使用dis模塊進(jìn)行一下驗(yàn)證。

In [86]: def foo(x, y): ...:  x += y ...:  return x ...:In [87]: def foo(x, y): ...:  x += y ...:In [88]: def foo2(x, y): ...:  x = x + y ...:In [89]: dis.dis(foo) 2   0 LOAD_FAST    0 (x)    3 LOAD_FAST    1 (y)    6 INPLACE_ADD    7 STORE_FAST    0 (x)    10 LOAD_CONST    0 (None)    13 RETURN_VALUEIn [90]: dis.dis(foo2) 2   0 LOAD_FAST    0 (x)    3 LOAD_FAST    1 (y)    6 BINARY_ADD    7 STORE_FAST    0 (x)    10 LOAD_CONST    0 (None)    13 RETURN_VALUE

可以看到字節(jié)碼是不同的:

  • += 對(duì)應(yīng) INPLACE_ADD
  • 對(duì)應(yīng)BINARY_ADD

注意:以上僅適用于CPython實(shí)現(xiàn)。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 高雄市| 乳源| 尼勒克县| 清河县| 祁阳县| 武清区| 东源县| 宁城县| 樟树市| 长岛县| 伊宁市| 五寨县| 惠安县| 柳江县| 新津县| 遂昌县| 鄱阳县| 元阳县| 英德市| 五寨县| 建湖县| 昭觉县| 石台县| 西平县| 昭平县| 丹棱县| 陇南市| 攀枝花市| 延寿县| 崇礼县| 宾川县| 沐川县| 邳州市| 博客| 桐乡市| 重庆市| 临颍县| 灯塔市| 延吉市| 台前县| 绥江县|