合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
赋值语句、表达式语句、打印 ## 赋值语句 > 赋值语句建立对象引用值 > 变量在首次赋值时会被创建 > 变量名引用前必须先赋值 ## 赋值语句形式 ### 元组和列表分解赋值运算 ```python [spam, ham] = ['yum', 'YUM'] spam, ham = 'yum', 'YUM' a, b, c, d = 'spam' (a, b), c = 'SP', 'AM' ``` ### 扩展序列解包运算 ```python *a, b = 'spam' ==> a = 'spa', b = 'm' a, *b = 'spam' ==> a = 's', b = 'pam' a, *b, c = 'spam' ==> a = 's', b = 'pa', c = 'm' ``` ### 多重赋值运算 ```python spam = ham= 'lunch' ``` ### 增强赋值运算 ![](http://om4h63cja.bkt.clouddn.com/17-3-8/1705066-file_1488945434959_6755.png) ## 变量命名规则 * 变量名可以使用数字字母下划线,变量名开头不能以数字开头 * 区分大小写 * 禁止使用保留字 * 常量一般使用大写字母表示, 如PIE ### python3 保留字 ``` False class finally is return None connitue for lambda try True def from nolocal while and del global not with as elif if or yield assert else import pass break except in raise ``` ### 命名惯例 * 以单一下划线开头的变量名 (\_x),不会被`from module import` \* 语句导入; 单个下划线是一个Python命名约定,表示这个名称是供内部使用的。 它通常不由Python解释器强制执行,**仅仅作为一种对程序员的提示**。 * 单末尾下划线 var_,用来避免与Python关键字产生命名冲突。 * 前后有下划线的变量名 (\_\_x\_\_),是系统定义的变量名,对解释器有特殊意义,比如__name__, \_\_doc__; * 以两个下划线开头,两个下划线开头的变量名 (\_\_x)是类的**本地变量**; 双下划线前缀会导致Python解释器重写属性名称,以避免子类中的命名冲突。 重写格式:`_ClassName__method() _ClassName__var` * 通过交互模式运行,单个下划线的变量名 (\_)会保存最后表达式的结果。 ### 变量名没有类型,变量(对象)才有 ``` x = 0 ,x是整型 x = 'hello',x变成字符型 ``` ## 引用计数器 对象的头部信息:类型标识符来标记对象类型,引用计数器用来决定是否可以回收。 ### 增加对象引用计数的场景 * 对象创建时 * 对象被添加进容器时 * 对象被当作参数传递给函数 * 为对象创建另外的变量名 ### 减少引用计数场景 * 引用对象的变量名被显式销毁:del x * 从容器中移除对象和容器本身被销毁 * 给引用此对象的变量名重新赋值