4.7 可变对象

可变对象

每个对象中,都保存了三个数据:

id 标识

type 类型

value 值

       列表就是一个可变对象

              eg:a=[1,2,3]

                     a[0]=10(改对象)

                            这个操作是在通过变量去修改对象的值

                            这种操作不会改变变量所指向的对象

                            当我们修改对象时,如果有其他变量也指向了该对象,则修改也会在其他变量中体现

                     a=[4,5,6](改变量)

                            这个操作是在给变量重新赋值

                            这种操作会改变变量所指向的对象

                            为一个变量重新赋值时,不会影响其他的变量

                     一般只有在为变量赋值时才是修改变量,其余的都是修改对象

#可变对象
a=[1,2,3]
print("修改前a=",a,id(a))

#通过索引修改列表
a[0]=10
print("修改后a=",a,id(a))

#为变量重新赋值
a=[4,5,6]
print("修改后a=",a,id(a))


#该对象会影响所有指向该对象的变量
a=[1,2,3]
b=a
b[
0]=10
print("a=",a,id(a))
print("b=",b,id(b))

#为一个变量重新赋值时,不会影响其他的变量
a=[1,2,3]
b=a
b=[
10,2,3]
print("a=",a,id(a))
print("b=",b,id(b))

4.7.1==和is 

==  !=比较的是对象的值是否相等

is is not 比较的是对象的id是否相等(比较两个对象是否是同一个对象)

a=[1,2,3]
b=[
1,2,3]
print(a, b)
print(id(a), id(b))
print(a==b) #ab的值相等,使用==会返回True
print(a is b)#ab不是同一个对象,使用 is会返回False

a=[1,2,3]
b=[
1,2,3]
a=b

print(a, b)
print(id(a), id(b))
print(a==b) #ab的值相等,使用==会返回True
print(a is b)#ab是同一个对象,使用 is会返回True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值