私有變量
私有變量或者私有屬性,一般以 雙下劃線開(kāi)頭 的變量
可以在class內(nèi)部通過(guò)方法調(diào)用练对,但是不能被實(shí)例化的對(duì)像直接調(diào)用
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就是屬于私有屬性了
用處烟号,比如我們有一個(gè)員工信息查詢系統(tǒng),員工的工資是不能夠顯示的
ok政恍,上面我們說(shuō)age這叫私有變量
其實(shí)也可以說(shuō)我們把a(bǔ)ge這個(gè)屬性給封裝在類里面了汪拥,又叫做類的封裝
私有方法:
與私有變量一樣,以雙下劃線開(kāi)始的方法叫做私有方法
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'
私有方法不能在外部通過(guò)實(shí)例被調(diào)用篙耗,但是在類內(nèi)部可以調(diào)用