python - 内置对象 之 变量
一、变量命名规划
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