一、变量命名规划
1.命名规则
(1)命名内容只能是字母、下划线、数字
(2)名字第1字符只能是字母或下划线
(3)区分大小写
2.私有变量
(1)_xxx
- "单下划线" 开始的成员变量相当于私有变量,也叫做保护变量,意思是只有类实例和子类实例能访问到这些变量,需通过类提供的接口进行访问;不能用'from module import *'导入
(2)__xxx
- 双下划线:类中的私有变量/方法名。" 双下划线 " 开始的是私有成员,无法在实例外部直接访问,只有类对象自己能访问。
(3)__xx __
- 双前后下划线,系统定义名字,为特殊属性或方法,特殊方法的存在是给Python解释器调用的,你自己并不需要调用他们,例如:__init __ , 不要自己发明这样的名字。
(4)xx_
- # 单后置下划线,用于避免与Python关键词的冲突。
3.python常用命名规范
(1)模块名:
小写字母,单词之间用_分割
ad_stats.py
(2)包名:
和模块名一样
(3)类名:
单词首字母大写
AdStats
ConfigUtil
(4)全局变量名(类变量,在java中相当于static变量):
大写字母,单词之间用_分割
NUMBER
COLOR_WRITE
(5)普通变量:
小写字母,单词之间用_分割
this_is_a_var
(6)实例变量:
以_开头,其他和普通变量一样
_price
_instance_var
(7)私有实例变量(外部访问会报错):
以__开头(2个下划线),其他和普通变量一样
__private_var
(8)专有变量:
__开头,__结尾,一般为python的自有变量,不要以这种方式命名
__doc__
__class__
(9)普通函数:和普通变量一样
get_name()
count_number()
ad_stat()
(10)私有函数(外部访问会报错):
以__开头(2个下划线),其他和普通函数一样
__get_name()
二、变量赋值规则
Python使用变量之前不需声明,变量赋值既是声明也是定义变量的过程。变量在使用之前都必须赋值。
1.赋空值方法
各类型对象赋空值方法
digital_value=0 #数字
str_value=""或str_value='' #字符串
list_value=[] #列表
ditc_value={} #字典
tuple_value=() #元组
2.增强赋值语句
3.变量赋值比较式
value = 2 < 5;
print(value;) #结果返回true
4.用input()对变量赋值
value=input(); #手工输入23
print(value);
5.删除已声明的变量
del var1
当我们删除var1对象后,再执行打印var1时,会报Not Defined的错误。
三、python变量引用顺序
- 从当前作用域开始寻找变量,没有则就往上一层作用域寻找,还没则继续往上一层找...... ,寻找顺序:
- 当前作用域局部变量->外层作用域变量->再外层作用域变量->......->当前模块全局变量->pyhton内置变量
- 观察下面3个例子,观察a的输出
#例1: a = 10 def outer(): a = 9 def inner(): a = 8 print(a) inner() print(a) outer() print(a) 结果: 8 9 10 例2: a = 10 def outer(): a = 9 def inner(): print(a) inner() print(a) outer() print(a) 结果: 9 9 10 例3: a = 10 def outer(): def inner(): print(a) inner() print(a) outer() print(a) 结果: 10 10 10
四、global定义全局变量
- global定义全局变量作用:声明自定义函数内的变量为全局变量
全局变量例子 x = 50 def func(): global x print('x的值是', x) x = 2 print('全局变量x改为', x) func() print('x值是', x) x的值是 50 全局变量x改为 2 x值是 2