Python之变量的创建过程

一、变量创建过程

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

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

我们可以通过 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不能创建新变量_Python之变量的创建过程!相关推荐

  1. R语言dataframe创建新的特征(变量)、行加和特征、行均值特征(基于加减乘除、指数、模数等操作符)、创建新的特征(变量)、生成编码特征(基于比较操作符、逻辑操作符)

    R语言dataframe创建新的特征(变量).行加和特征.行均值特征(基于加减乘除.指数.模数等操作符).为dataframe创建新的特征(变量).生成编码特征(基于比较操作符.逻辑操作符) 目录

  2. python函数里面引用外部变量_Python基础 变量进阶

    目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 ...

  3. python静态变量_python静态变量

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我这里的代码实现了静态变量的装饰器. 但是,我发现如果我多次运行这个函数,每次调 ...

  4. python定义变量_Python基础 变量的基本使用

    变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 ...

  5. python怎么定义一个数字_Python数字变量定义赋值

    一.任务描述 本实验的任务主要对Python的变量赋值进行基本操作,通过完成本实验任务,要求学生熟练掌握Python的变量赋值与定义,并对Python变量的基本操作进行整理并填写工作任务报告. 二.任 ...

  6. python清除所有变量_python清除变量

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 否则,抛出异常(具体参见异常说明)删除文件库方法签名:delete()方法说明: ...

  7. python 声明变量_Python的变量声明

    Python 与大多数其它语言一样有局部变量和全局变量之分,但是它没有明显的变量声明.变量通过首次赋值产生,当超出作用范围时自动消亡. Example 1. 定义 myParams 变量 if __n ...

  8. python如何复制一个变量_Python中变量、赋值、浅拷贝、深拷贝

    在理解浅拷贝和深拷贝之前,首先要理解学习一下变量在Python中是怎样存储的: 变量的类型是分值引用与地址引用两种. python的一切变量都是对象,变量的存储,采用了地址引用的方式,存储的只是一个变 ...

  9. python 文件路径 变量_python路径变量

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 开发准备cas 的 python sdk 包含了用于访问和操作 cas 的所有 ...

  10. 怎么设置python解释器path变量_python环境变量设置

    在默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. python环境变量设置 1. 首先需要在系统中注册python环境 ...

最新文章

  1. 黑白青春-纪念那年我的秋天
  2. 别再打字聊bug了,GitHub支持“视频留言”!手机也可以的那种
  3. 说出你的个人知识问题!
  4. NYOJ 311 完全背包
  5. linux下执行shell脚本文件,Linux下使用shell脚本自动执行脚本文件
  6. 移动app崩溃原因及场景
  7. 如何实现远程登陆,如何实现远程桌面
  8. shiro学习(15):使用注解实现权限认证和后台管理
  9. 在Spring+Hibernate项目中使用原生SQL进行查询和执行SQL处理
  10. DRL实战 : Dynamic Programming
  11. 北京54坐标和经纬度坐标转换算法(C++)
  12. S32K1xx 系列安全手册
  13. java 回收器有几种_Java垃圾回收器种类
  14. 计算机基础(01)基础知识
  15. 2022-2028年中国饮用水市场投资分析及前景预测报告(全卷)
  16. ffmpeg 图像格式转换
  17. ie浏览器代理设置方法 怎么给IE浏览器设置代理?
  18. Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBean
  19. 百度图神经网络7日打卡营--DAY01前半部分 总结
  20. wcs开发_WCS 5.2的评论—用于Webcast和Webcam开发人员的WebRTC服务器

热门文章

  1. python分类器鸢尾花怎么写_python机器学习基础教程-鸢尾花分类
  2. springmvc + springboot + mybatis java b2b2c电子商城系统源码...
  3. Shell---for循环
  4. JS实现-页面数据无限加载
  5. tomcat配置manager
  6. JAVA wait(), notify(),sleep具体解释
  7. linux 中 timeval结构体 - Neddy11 - 博客园
  8. 周末思考:浅谈如何成为技术一号位?
  9. 并发编程中一种经典的分而治之的思想!!
  10. 遇到网络问题你是怎么解决的?安琪拉有二招