Python 变量的创建过程详解

 更新时间:2019年09月02日 10:47:20   作者:Kwan、C  
这篇文章主要介绍了Python 变量的创建过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、变量创建过程

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

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

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

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

二、变量的修改

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

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

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

三、变量的指向关系

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

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

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python opencv实现目标区域裁剪功能

    python opencv实现目标区域裁剪功能

    这篇文章主要介绍了python opencv实现目标区域裁剪功能,通过截取到坐标信息以后用CV2的裁剪就可以完美实现,本文给大家分享实例代码,需要的朋友可以参考下
    2021-07-07
  • 浅谈Python中的模块

    浅谈Python中的模块

    这篇文章主要介绍了Python中的模块相关知识,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下
    2020-06-06
  • 详解Python直接赋值,深拷贝和浅拷贝

    详解Python直接赋值,深拷贝和浅拷贝

    这篇文章主要介绍了Python直接赋值,深拷贝和浅拷贝的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 用python爬取电脑壁纸实例代码

    用python爬取电脑壁纸实例代码

    大家好,本篇文章主要讲的是用python爬取电脑壁纸实例代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • python统计日志ip访问数的方法

    python统计日志ip访问数的方法

    这篇文章主要介绍了python统计日志ip访问数的方法,涉及Python操作日志文件及正则匹配的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-07-07
  • Python中logger模块的使用场景分析

    Python中logger模块的使用场景分析

    logger是python的内置模块,用以输出代码运行过程中的运行情况,极大的方便了我们的debug过程,本文通过实例代码给大家介绍了Python中logger模块的使用教程,需要的朋友可以参考下
    2023-06-06
  • python-yml文件读写与xml文件读写

    python-yml文件读写与xml文件读写

    这篇文章主要介绍了python-yml文件读写与xml文件读写,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Pandas之drop_duplicates:去除重复项方法

    Pandas之drop_duplicates:去除重复项方法

    下面小编就为大家分享一篇Pandas之drop_duplicates:去除重复项方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 利用Python实现绘制3D爱心的代码分享

    利用Python实现绘制3D爱心的代码分享

    最近你是否也被李峋的爱心跳动代码所感动,心动不如行动,相同的代码很多,我们今天换一个玩法!构建一个三维的跳动爱心!嗯!这篇博客本着开源的思想!不是说谁对浪漫过敏的
    2022-11-11
  • 如何在Python中安装GDAL库

    如何在Python中安装GDAL库

    这篇文章主要介绍了如何在Python中安装GDAL库,GDAL是一个在X/MIT许可协议下的开源栅格空间数据转换库,需要的朋友可以参考下
    2023-04-04

最新评论