40.私有变量、方法实现类的封装

2018-03-19  本文已影响0人  经纶先生

私有变量

私有变量或者私有属性,一般以 双下划线开头 的变量
可以在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'

私有方法不能在外部通过实例被调用,但是在类内部可以调用

上一篇 下一篇

猜你喜欢

热点阅读