1、私有化
xx:共有变量
_x:单前置次啊化纤,私有化属性或方法,from somemoudle import * 禁止导入,类对象和子类可以访问
__x:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(私有变量)
__xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init__(不要自己发明)
x_:单后置下划线,由于避免和Python关键字冲突
2、property的使用(装饰器)
class Test(object):
def __init__(self):
self.__num=100
@property
def num(self):
print("-------getter--------")
return self.__num
@num.setter
def num(self,newNum):
print("-------setter--------")
self.__num=newNum
t = Test()
t.num = 200 #相当于调用了 t.setNum(200)
print(t.num) #相当于调用了 t.getNum()