参见英文答案 Is a variable the name, the value, or the memory location? 4个请考虑以下日志: y = 20000 id(y)36638928 y = 1000000 id(y)36639264 正如您所...

参见英文答案 > Is a variable the name, the value, or the memory location? 4个
请考虑以下日志:
>>> y = 20000
>>> id(y)
36638928
>>> y = 1000000
>>> id(y)
36639264
正如您所看到的,在更改y的值之后,它的ID也会更改.
这是否意味着int是不可变的?幕后发生了什么?
谢谢!
解决方法:
是的,整数是不可变的.你需要意识到的是:
>变量只是用于引用对象的名称.
> 20000和1000000是两个唯一的整数对象.这意味着它们永远不会同时共享相同的内存地址.
简单来说,当您执行此行时:
y = 20000
发生了两件事:
>在对象空间中创建整数对象20000.
>在名称空间中创建名称y并指向该对象.
当你执行这个时:
y = 1000000
还有两件事情发生了:
>在对象空间中创建新的整数对象1000000.
>名称y更改为指向该对象而不是20000.
本文标题为:理解python的内存模型


基础教程推荐
- python机器学习Github已达8.9Kstars模型解释器LIME 2023-08-09
- python爬虫beautiful soup的使用方式 2022-09-02
- python数据结构之面向对象 2023-08-09
- Python数据分析与处理(一)--北京高考分数线统计分析 2023-08-09
- 详解Python中的字符串格式化 2023-08-04
- python爬虫爬取bilibili网页基本内容 2023-08-11
- Python线程和子进程 2023-11-12
- osx中的rsvg python内存泄漏(ctypes?) 2023-11-12
- centos7 安装python3 2023-09-04
- centos 服务器安装python 2.7.15 2023-09-05