私有变量
私有变量或者私有属性,一般以 双下划线开头 的变量
可以在class内部通过方法调用,但是不能被实例化的对像直接调用
class People(object):
def __init__(self,name,age):
self.name = name
self.__age = age
def job(self):
if self.__age > 50:
print("不录用。。。。")
else :
print("你被录用了")
p = People("dailiang",16)
p2 = People("zhuzegang",73)
p.job() #你被录用了
p2.job() #不录用。。。。
print(p.name) #dailiang
print(p.age) #AttributeError: 'People' object has no attribute 'age'
可以看到age就是属于私有属性了
用处,比如我们有一个员工信息查询系统,员工的工资是不能够显示的
ok,上面我们说age这叫私有变量
其实也可以说我们把age这个属性给封装在类里面了,又叫做类的封装
私有方法:
与私有变量一样,以双下划线开始的方法叫做私有方法
class People(object):
def __init__(self,name,age,salary):
self.name = name
self.age = age
self.salary = salary
def __addsalary(self): #私有方法
self.salary += 5000
def newsalary(self):
if self.salary < 10000:
self.__addsalary()
print(self.salary)
else:
print(self.salary)
p = People("dailiang",16,300)
p2 = People("zhuzegang",73,50000)
print(p.newsalary()) #5300
print(p2.newsalary()) #50000
p.__addsalary() #AttributeError: 'People' object has no attribute '__addsalary'
私有方法不能在外部通过实例被调用,但是在类内部可以调用