手记

Python 变量

Python中一切皆对象,这节主要内容如下:

  1. 变量命名规则

  2. 变量赋值

  3. 变量与内存


2. 1. 变量名

Python中变量名遵循下面规则:
1)字符或者下划线开头;
2)由字符和数字下划线组成;
3)变量名对大小写敏感;
4)不能和关键字重名(关键字:例如 if,while等);

正确变量名:x, y, _tmp1, tmp, check_flag;错误变量名:1x,if, @s,
2. 变量赋值

Python是动态解释性语言,赋值时候不需要指定变量类型。

  • 变量赋值实质:
    1)创建对象;
    2)将变量名和对象进行绑定;

    x = 10, 如果10这个对象不存在,python解释器创建对象10,然后将x指向这个对象;对象决定了类型,变量没有类型,只是一个指针;
  • 引用:变量赋值就是一个引用过程,赋值过程是变量名和对象进行绑定,变量名修改时进行解绑定;
    好处:当多个变量同时指向一个对象时,减小内存开销;
    坏处:增加了绑定和解绑定过程,消耗极少时间;

  • 变量赋值类型:
    1)直接赋值:
    x = 10
    2)增量赋值:
    x += 20
    3)多重赋值:
    x = y = z = 10
    4)多元赋值:
    x, y = 10, '10' 等于 x = 10, y = '10'

3. 变量与内存:
  • 变量和内存关系:
    1)定义两个变量x, y,赋予相同的整数值10,
    2)然后修改y的值,使用id方法观察变量指向地址变化;

    >>> x = 10>>> id(x)      #id方法:得到对象的地址1351918976>>> y = 10>>> id(y)1351918976>>> id(10)1351918976>>> y=20>>> id(y)1351919296>>> id(x)1351918976>>>

    从上面的例子中我们发现:
    1:x,y同时指向变量10且内存地址是相同的;
    2:当我们修改y值后,y指向地址发生变化;但是x没有变化;
    需要注意,这种赋值方式只适用于占用内存较小的变量、字符串等,当我们是使用浮点做下实验就会得到不同结果,这与Python内存管理机制有关系:

    >>> m = 3.14>>> n = 3.14>>> id(m)    # m和n的值形同,但是地址不同2013662155904>>> id(n)2013662157488>>>
  • 内存回收机制:
    问:如果我们不断赋值,变量会不会太多导致内存不够?
    回答:当我们对变量进行赋值时,赋值对象的引用计数会加1,当我们修改变量或者变量作用域小时时候,引用计数减1,当对象的引用计数为0时,python解释器会释放这个对象,对内存进行回收。

总结:

掌握知识点:
1:变量命名规则
2:变量的赋值形式
了解知识点:
Python内存管理

0人推荐
随时随地看视频
慕课网APP