2.赋值运算符
=:简单的赋值运算符
>>> a=5 #一个等号为赋值 >>> b=4 >>> c=a+b>>> print(c)9
+=:加法赋值运算符
>>> a=5 >>> b=3 >>> a+=b #a+=b 等于 a=a+b 把a+b的值重新赋值给a 之所以a被称为变量 是因为值是不断变化的>>> print(a)8
-=:减法赋值运算符
>>> a=5 >>> b=3 >>> a-=b #等于a=a-b>>> print(a)2
*=:乘法赋值运算符
>>> a=5 >>> b=3 >>> a*=b #等于a=a*b>>> print(a)15
/=:除法赋值运算符
>>> a=5 >>> b=3 >>> a/=b #等于a=a/b>>> print(a)1.6666666666666667
%=:取模赋值运算符
>>> a=5 >>> b=3 >>> a%=b #等于a=a%b>>> print(a)2
**=:幂赋值运算符
>>> a=5 >>> b=3 >>> a**=b #等于a=a**b>>> print(a)125
//=:取整赋值运算符
>>> a=5 >>> b=3 >>> a//=b #等于a=a//b>>> print(a)1
3.python变量命名规则
变量名由字母,数字,下划线组成 。
但必须是字母或下划线开头。区分大小写,不能由数字开头
变量名不能包含空格
不能用python的保留关键字作为变量名
_xx:前置单下划线变量名:私有属性或方法 但是并不能做到真正的 '私有' 只是约定俗称而已 这样写表示这个变量不希望在外部直接被调用,但是类对象和子类可以访问
__xx:前置双下划线变量名:私有属性或方法 无法在外部直接访问。真正的私有 只允许类本身进行访问 连子类都不能访问
__xx__:前后双下划线变量名:系统定义名字 对于python来说有特殊意义 一般用于类对象中的构造方法 普通变量应该避免这种命名风格
xx_:后置单下划线变量名:用于避免python关键字冲突
>>> 5a=2 #数字开头的变量报错 File "<stdin>", line 1 5a=2 ^SyntaxError: invalid syntax>>> a2=2 >>> print(a2)2
>>> a 2=2 #空格的变量名报错 File "<stdin>", line 1 a 2=2 ^SyntaxError: invalid syntax
4.python内存管理机制
变量与对象 关系图如下
变量:通过指针引用对象 指针指向具体对象的内存空间 取对象的值
对象:类型已知 每个对象都包含一个头部信息(类型标识符和引用计数器)
注意:变量没有类型,类型属于对象 变量引用的对象是什么类型 变量就是什么类型
id()是python的内置函数,用于返回对象的身份,即对象的内存地址
>>> a=5 >>> b='zhang'>>> print(id(a))1947509984 >>> print(id(b))2910255636128 >>> >>> >>> c=b>>> print(id(c)) #c与b引用的是同一个对象 同一个内存地址2910255636128 >>> a=6 >>> print(id(6)) #重新定义a时 内存地址会变1947510016
引用所指判断
python通过is进行引用判断 is用来判断所引用的对象类型是否相同
Python缓存了整数和短字符串,因此每个对象在内存中只存有一份,引用所指对象就是相同的,即使使用赋值语句,也只是创造新的引用,而不是对象本身
Python没有缓存长字符串、列表及其他对象,可以由多个相同的对象,可以使用赋值语句创建出新的对象
整数
>>> a=1 >>> b=1 >>> print(a is b) True
短字符串
>>> a='hello'>>> b='hello'>>> print(a is b) True
长字符串
>>> a='hello duoceshi'>>> b='hello duoceshi'>>> print(a is b) False
列表
>>> a=[]>>> b=[]>>> print(a is b) False
字典
>>> a={}>>> b={}>>> print(a is b) False
python垃圾回收
当python的某个对象的引用计数器为0时,说明没有任何变量引用指向该对象,该对象就成为要被回收的垃圾
比如某个新建对象,被分配给某个引用,对象的引用计数变为1。如果引用被删除,对象的引用计数为0,那么该对象就可以被垃圾回收
del a后,已经没有任何引用指向之前建立的5,该表引用计数变为0,用户不可能通过任何方式接触或者动用这个对象,当垃圾回收启动时,Python扫描到这个引用计数为0的对象,就将它所占据的内存清空
>>> a=5 >>> del a
上一篇: jmeter教程之基础介绍
下一篇: 软件测试之手工测试人员如何转测试开发?