python的变量与赋值详细分析
作者:ZHANGONE 发布时间:2022-06-14 23:09:44
python的变量与赋值
1.变量的命名规则
变量其实通过一个标记调用内存中的值,而变量名就是这个标记的名称,但是万一这个标记已经被提前占用或者解释器认为这个标记是不合法的,那么就会报错。下面总结了一下变量的命名规则:
1.不能使用python的关键字,也就是说标记不能被提前占用,python的关键字包括:
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
2.变量名的第一个字符不能是数字,这样的命名被认为是不合法的。
3.变量名只能是字母、数字或下划线(_)的任意组合。
规则就是规则,没有什么好解释的,但是我们可以在符合规则的前提下做进一步的要求,详情请参照python的pep8编码规范
2.变量的赋值
在python中,我们对变量进行赋值的时候,用的是一个等于符号(=),要注意不是两个(==)。
例如:
a = 10
这段代码的动作就相当于:
注意:我们并不是为标记a建立了一个值,而是先建立一个值以后,再用一个标记去指向它。
在知道了赋值是怎么进行的以后,我们再来看下面这个代码:
a = 10
b = a
a = 20
那么,此时b=?
如果按照我们常用的数学思维的话,那么b肯定是等于20的,但这里却不是这样的,如果按照一般的思维的话,是下面这样的:
如果按照这个逻辑的话,那么b肯定是等于20的,但这里是错误的,所以我画了个叉。
因为变量是一个标记,用来调用内存中的值,当我们将一个标记赋值给另一个标记的时候,应该是让其指向另一个标记的内存,而不是指向标记。
按照这个原则,我们的思路应该是这样的:
也就是说此时b应该等于10,下面我们来试验一下是否正确:
验证正确,这个思路没有问题。
3.python中的垃圾回收机制
这个时候我们可能会有疑问,如果是下面这种情况会怎么样:
a = 10
a = 20
按照我们之前建立的思维,a已经指向了20了,那么剩下的那个10会怎么样?
这就要说起python中的垃圾回收机制了,python会按一定的规则回收内存中的垃圾数据以释放内存空间。
Python内存回收的基石是引用计数,“当一个对象的引用被创建或复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1”,如果对象的引用计数减少为0,将对象的所占用的内存释放。
python通过引用计数,将引用次数为0的数据从内存中清除,具体的回收时机不太清楚,可能是每隔一段时间回收一次。
简单的垃圾回收这这样的,但垃圾回收的机制远比这要复杂许多,因为有时候会出现循环引用的情况,这种时候,单纯清除0次引用的还是不够的,所以此时还有其他的算法来回收。
来源:http://www.cnblogs.com/zhange/p/7800722.html


猜你喜欢
- 代码如下:<form action="insert.asp" method="pos
- 1、执行环境说明python版本3.7直接使用pip进行安装pywin32、pyinstallerpip install pywin32pi
- 抽象特点Python 一切皆对象,基于此概念,对 类 class 有以下特点:类与实例的属性类对象创建可选择定义类属性,创建实例对象时,实例
- 实现思路是先获取到当前最上面活动的窗口信息,然后提取该窗口的名称信息。之后获取窗口的坐标信息,即左上角的开始坐标及右下角的结束坐标。最后直接
- 1.func Fields(s string) []string,这个函数的作用是按照1:n个空格来分割字符串最后返回的是[]string的
- 上周对线上某几个磁盘进行了fio硬盘性能测试,测试完成之后的结果需要绘制成图像展示出来。我在官网上查找
- 本文使用python的第三方模块requests爬取王者荣耀所有英雄的图片,并将图片按每个英雄为一个目录存入文件夹中,方便用作桌面壁纸下面时
- 1、PRIMARY KEY上期我们讲述了 not null 和 unique 约束,而本期的第一个约束就是这俩的结合体,也成为主键约束。主键
- 使用场景一:如果在一张表中ManayTOManay字段关联的是自身,也就是出项这样的代码:ManyToManyField(self)那么,你
- 本文实例讲述了python通过urllib2获取带有中文参数url内容的方法。分享给大家供大家参考。具体如下:对于中文的参数如果不进行编码的
- 经常看到朋友圈或者空间里有朋友发布照片时,将朋友圈的照片切分为九宫格,参考了一些大神的博客资料,现整理如下;将图片分拆成九宫格的思路:读取图
- 本文实例为大家分享了使用RNN进行文本分类,python代码实现,供大家参考,具体内容如下1、本博客项目由来是oxford 的nlp 深度学
- 前言春联是中国传统文化中最具内涵的元素之一,它以对仗工整、简洁精巧的文字描绘美好形象,抒发美好愿望,是中国特有的文学形式,是华人们过年的重要
- 在上一篇Python接口自动化测试系列文章:Python接口自动化浅析登录接口测试实战,主要介绍接口概念、接口用例设计及登录接口测试实战。以
- Python 中 list.sort() 是列表中非常常用的排序函数, key 参数可以对单个属性进行排序。但是想要实现类似 sql 中 o
- 不同于行级或页级锁定的选项:· 版本(例如,为并行的插入在MySQL中使用的技术),其中可以一个写操作,同时有许多读取操作。这明数据库或表支
- MySQL常用的四种引擎的介绍(1):MyISAM存储引擎:不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以sele
- 数据表中有一列数据,如图所示:现在需要将该列数据分成三列。SQL 代码如下所示:第一种select max(case when F1%3=1
- 一、常用文件函数库1、basename(); -- 返回路径中的文件名部分。string basename ( string $path [
- 在linux服务器部署thinkphp5的时候PHP报了Warning: require(): open_basedir restricti