python的类中属性的理解
python是一个动态语言,因此可以根据类创建的实例任意绑定属性。
给实例绑定属性的方法:
1、通过实例变量
2、通过self变量
class People(object):
country = 'china' # 类属性
print(People.country) #china
p = People()
print(p.country) #china
p.country = 'japan'
print(p.country) # 实例属性会屏蔽掉同名的类属性,因此是japan
print(People.country) #china
del p.country # 删除实例属性
print(p.country) #实例属性被删除后,再调用同名称的属性,会调用类属性:china
类中属性方法的理解:
单引号下划线: _var #以单个下划线开头的变量或方法提醒程序员是供内部使用的,但是外部也是可以访问的
双领先下划线: __var #python解释器会重写这个属性名,变成:_class名__var,以避免子类中的命名冲突,只允许在类中访问,对象也访问不了这个属性(对象中的这个属性名变了
变成:_class名__var
)。
领先和落后双下划线: __var__ #表示由Python语言定义的特殊方法,避免为自己定义属性使用此命名方案。