Python 变量的创建过程详解

作者:Kwan、C 时间:2022-04-20 03:01:17 

一、变量创建过程

首先,当我们定义了一个变量name = 'Kwan'的时候,在内存中其实是做了这样一件事:

程序开辟了一块内存空间,将'Kwan'存储进去,再让变量名name指向'Kwan'所在的内存地址。如下图所示:

Python 变量的创建过程详解

我们可以通过id()方法查看这个变量在内存中的地址。


name = 'Kwan'
print(id(name))

二、变量的修改

一般我们认为修改一个变量就是用新值把就旧值覆盖掉,可Python真是这么实现的么?


name = 'Kwan'
print(id(name))
name = 'Kobe'
print(id(name))

Python 变量的创建过程详解

实际的原理是什么样的呢?程序先申请了一块内存空间来存储'Kwan',让name变量名指向这块内存空间,往下执行name = 'Kobe'之后,又申请了另一块内存空间来存储'Kobe',并让原本指向'Kwan'内存的链接断开,让name再指向'Kobe'。

Python 变量的创建过程详解

三、变量的指向关系

问:下面这段代码为何出现这样的现象?


name1 = 'Kwan'
name2 = name1
print(name1, name2)
name1 = 'Kobe'
print(name1, name2)

Python 变量的创建过程详解

要想知道上面问题的结果是为什么,首先要了解再内存中两个变量的存储情况。

Python 变量的创建过程详解

从上面的示意图中我们可以知道,当执行name2 = name1时,事实上时让name2指向了'Kwan'所在的内存地址。

修改name1的值,相当于断开了name1到'Kwan'的链接,重新建立name1和'Kobe'之间的链接。在这个过程中,始终没有影响到name2和'Kwan'之间的关系,因此name2还是'Kwan',而name1变成了'Kobe'。

来源:https://www.cnblogs.com/Kwan-C/p/11444595.html

标签:python,变量,创建,过程
0
投稿

猜你喜欢

  • ASP 调用dll及封装dll实例

    2011-03-17 10:47:00
  • python实现感知器算法(批处理)

    2022-09-06 18:02:25
  • Python判断变量是否已经定义的方法

    2023-08-01 07:14:01
  • 浅谈Python flask框架

    2021-04-07 00:45:43
  • 最新python 字符串数组互转问题

    2023-07-07 18:34:06
  • 浅析is_writable的php实现

    2023-09-09 01:41:05
  • 自适应浏览器位置的div效果

    2008-05-29 13:15:00
  • php二分查找二种实现示例

    2023-11-21 00:40:13
  • JavaScript性能优化小技巧,创建文档碎片

    2010-03-31 18:27:00
  • python实现二级登陆菜单及安装过程

    2023-09-16 16:05:44
  • python线程安全及多进程多线程实现方法详解

    2023-08-27 02:01:54
  • Dhtml网页实例教程

    2007-10-09 13:39:00
  • 利用Python+OpenCV三步去除水印

    2021-09-17 10:32:30
  • pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作

    2023-11-30 01:20:41
  • Python的Flask框架中web表单的教程

    2023-05-17 06:11:06
  • 使用 JScript 创建 .exe 或 .dll 文件

    2011-06-04 15:37:00
  • Python小程序之在图片上加入数字的代码

    2023-11-14 08:26:48
  • 10个很实用的js小脚本代码

    2007-10-17 21:08:00
  • python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作

    2024-01-02 12:40:07
  • python读写修改Excel之xlrd&xlwt&xlutils

    2022-04-03 16:35:43
  • asp之家 网络编程 m.aspxhome.com