网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月28日漏签0天
python吧 关注:480,396贴子:1,982,205
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 5回复贴,共1页
<<返回python吧
>0< 加载中...

不可变对象

  • 只看楼主
  • 收藏

  • 回复
  • 一周休七日
  • 吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
初学一般都会踩的坑,尤其是有其它语言经验的
a = 1#这里变量a只是1这个对象的一个引用
不管是赋值“a = 2”还是原地修改“a += 1”都不是修改1这个对象,仅仅是变量a重新绑定其它对象了,1还是1,因为这是不可变对象
水帖而已。。。


  • lk586
  • 贡士
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如果按照你的理论的话, a = [1], a=[2], 仅仅是变量a重新绑定其它对象, [1] 还是[1], 因为这是不可变对象, 明显就有问题了
前期你这么记倒不是不行, 但是后面涉及到复杂概念的时候, 你可能就会混乱了.
变量, 这里比如说是a, 他只是对象的外在名字而已(后面namespace 概念里会提及), 你看a 和其他地方的a 是不是一样, 只需要看 a 的id 就可以, id(a), 这个id 就是变量的身份证.
a = 1, a=2, a+=1 这几个步骤后, 你查看 id(a) 都是不一样的, 也就是说a 直接被修改了, 是a被赋予了其他对象, 并不能说明 1 , 2 是不可变的.
你分别对比以下的变量id, 就能明白了可变和不可变了
a=1
b=1
--------
a="a"
b="a"
-------
a=[1]
b=[1]
-------
a = [1]
a.append(2)
a[1]=3
-----
分别查看每次赋值之后的id, 就心里有数了


2025-12-28 11:48:01
广告
不感兴趣
开通SVIP免广告
  • 起个id真难119
  • 白丁
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
看见重新绑定.但是还是没多大感觉


  • 起个id真难119
  • 白丁
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我没怎么接触过按照 id搜了下指的是内存地址 内存地址确实不同 也就是重新赋值.它不会在原来地方修改.只是把a绑定到其它地方?至于这个理解还有什么作用没遇到过


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 5回复贴,共1页
<<返回python吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示