请考虑以下日志:
>>> y = 20000
>>> id(y)
36638928
>>> y = 1000000
>>> id(y)
36639264
正如您所看到的,在更改值之后y
,它的ID也会更改.
这是否意味着int
不可改变?幕后发生了什么?
谢谢!
是的,整数是不可变的.你需要意识到的是:
变量只是用于引用对象的名称.
20000
并且1000000
是两个唯一的整数对象.这意味着它们永远不会同时共享相同的内存地址.
简单来说,当您执行此行时:
y = 20000
Run Code Online (Sandbox Code Playgroud)
发生了两件事:
20000
在对象空间中创建整数对象.
一个名字y
在命名空间中创建并指出该对象.
当你执行这个时:
y = 1000000
Run Code Online (Sandbox Code Playgroud)
还有两件事情发生了:
1000000
在对象空间中创建一个新的整数对象.
名称y
将更改为指向该对象而不是20000
.
归档时间: |
|
查看次数: |
5444 次 |
最近记录: |