Chi*_*jan 1 python memory-management object cpu-architecture immutability
我们可以通过将修改后的变量的新内存位置与原始定义的变量进行比较来检查对象类型是否可变。
例如 - int()是 Python 中的不可变对象。如果我尝试修改整数类型变量的值,我会注意到内存位置发生了变化[Code and Output below]。有人可以在后台提供一个简短的解释吗?
#initial variable
a = 10
# initial memory location
print(id(a))
#modified variable
a += 1
# new memory location, is it same?
print(id(a))
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)OUTPUT 93285870446416 93285870446524
后台发生了什么?
Run Code Online (Sandbox Code Playgroud)a = 10
intint保留内存,给出内存地址,将该内存标记为“正在使用”Run Code Online (Sandbox Code Playgroud)a += 1
intint预留了内存,给了一个新的内存地址,因为旧的还在使用中也许另一个
Run Code Online (Sandbox Code Playgroud)a += 1
intint保留内存,提供另一个新内存地址,或重用现在释放的内存地址(“旧”地址)等等
| 归档时间: |
|
| 查看次数: |
360 次 |
| 最近记录: |