当前位置: 首页 > news >正文

python变量定义是什么意思_抽象理解python中变量的定义过程

关键词:变量的定义、变量的删除

前言:

在python中,变量名真的只是一个名字而已,它维护的是一个地址,当这个地址变了,那么此时这个变量的指向也就变了,此时这个变量的值也就变了。这个变量可以指向一个整型变量,当然它也可以指向一个函数,当然它也可以指向其他的对象。

python中"一切"皆对象,"一切"皆引用。(加上引号是为了防止出现万一的情况)

1、变量的定义:

当在python中执行如下赋值语句的时候:

a = "laoliang" # "laoliang"是一个字符串对象

这个语句在python中一旦执行:

①那么首先申请一个内存空间存放"laoliang"(如果" laoliang"不存在于内存的话);

②同时也为变量名a分配一个内存空间(如果a不存在于内存的话);

③接着让a指向"laoliang"所在的内存空间,此时a中保存的是一个地址,即"laoliang"所在内存空间的地址。

1767233-20190830102315036-1324956002.png

这就是python中变量的定义。

2、变量的删除:

del a

分析:

在执行上述语句删除变量的时候,其实只是删除了一个引用而已。如果变量desc所指向的对象的引用计数不为0,那么此时该对象仍然不会被删除,此时只是变量的引用被删除了而已。

1767233-20190830102156466-591246242.png

3、特殊情况分析:

当在python中执行如下赋值语句的时候:

a = "laoliang"

b = "laowang"

a, b = b, a

(1)对于语句1和语句2,参考上一小节所分析的;

(2)对于语句3:

①这个语句在python中一旦执行,那么首先分析等号右边的内容,查找右边的b和a的值。通过查找可得a = "laoliang", b = "laowang";

②等号右边的内容都找到之后,再分析左边的。此时会让a,b分别指向对应位置的新的值,即让a = b = "laowang", b = a = "laoliang"

执行语句3之后的变化情况:

1767233-20190830101129608-1479717944.png

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 游标的应用
  • kaggle比赛_由kaggle的一个失败的比赛引出一个CVR的小问题
  • 存储过程
  • 启动子级时出错_买面粉不能只看价格,看准包装上这两点,买面粉不出错
  • C语言中嵌入式SQL语句
  • php编译成二进制文件_基础为零?如何将 C++ 编译成 WebAssembly
  • 履带机器人运动控制器c++_PAL Robotics借助磁编码器技术实现机器人运动平衡
  • css 背景图怎么设置自动填充满_几种常见的CSS布局,新手一定要学学
  • 关于存储过程的一些tips
  • python判断文件读取结束_python中readline判断文件读取结束的方法
  • Memory Notification: Library Cache Object loaded into SGA
  • 加密机工作原理_观健电解水机工作原理是什么 电解水机工作原理【介绍】
  • ORA-02064: 不支持分布式操作
  • 无监督学习与有监督学习的本质区别是什么_监督学习 vs 无监督学习
  • wxpython使用_python图形界面开发之wxPython树控件使用方法详解
  • 【刷算法】求1+2+3+...+n
  • 2017 年终总结 —— 在路上
  • Apache的基本使用
  • co模块的前端实现
  • Golang-长连接-状态推送
  • go语言学习初探(一)
  • JavaScript-Array类型
  • JAVA多线程机制解析-volatilesynchronized
  • React-flux杂记
  • springboot_database项目介绍
  • Swoft 源码剖析 - 代码自动更新机制
  • vue数据传递--我有特殊的实现技巧
  • 高度不固定时垂直居中
  • 后端_MYSQL
  • 你不可错过的前端面试题(一)
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 昨天1024程序员节,我故意写了个死循环~
  • # 安徽锐锋科技IDMS系统简介
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $.ajax中的eval及dataType
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (3) cmake编译多个cpp文件
  • (3)STL算法之搜索
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (六)Hibernate的二级缓存
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (三)终结任务
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (十六)一篇文章学会Java的常用API
  • (一)appium-desktop定位元素原理
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)EOS中账户、钱包和密钥的关系
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复