日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

干货丨你知道Python中a += b和a = a + b的结果是不一样的吗?

發布時間:2025/3/20 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 干货丨你知道Python中a += b和a = a + b的结果是不一样的吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可變類型和不可變類型

想要了解a += b和a = a + b結果是不是一樣。要先知道什么是可變變量和不可變變量。

Python中

  • 不可變類型:數字,字符串,元組
  • 可變類型:列表,字典

不可變類型運算舉例

不可變+=

不可變=+

不可變類型在進行+=和=+之后結果是一樣的。

可變類型運算舉例

可變+=

可變類型+=情況

可變=+

可變類型a=a+b情況

通過上圖對比我們發現可變類型的變量在進行a += b和a = a + b時結果是不一樣的。在進行+=操作時,a1和a2值同時改變,但是在進行先加后賦值時a1和a2不能同時改變。

大家一定要記住上面的結論

原理__add__和 iadd 的區別

  • add 方法接收兩個參數,返回它們的和,兩個參數的值均不變。
  • iadd 方法接收兩個參數,第一個參數的值改變

可變類型使用加號操作(即a=a+b),調用__add__會返回一個新的對象,原來的對象不變。

示意圖如下:

a1 = a1 + b 后a1會指向新的結果,但是a2指向不變

可變類型使用+=操作(即a+=b),調用__iadd__方法,第一個參數的值改變,即a1指向的本身內容發生改變,指向位置不發生改變。

示意圖如下:

a1 += b后a1指向的內容發生改變,指向的位置不發生改變,所以a2的內容也會跟著a1一起改變

總結

以上是生活随笔為你收集整理的干货丨你知道Python中a += b和a = a + b的结果是不一样的吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。