#使用私有属性的场景:
#把特定的一个属性隐藏起来 不想让类的外部直接调用
#保护这个属性 不让属性的值随意的改变
#保护这个属性 不像让派生类【子类】去继承
class People:
def __init__(self):
self.__name='张三' #__是将属性私有化
self.age=18
pass
def __str__(self):
'''
在内部直接返回
:return:
'''
return '{}的年龄是{}'.format(self.__name,self.age)
zs=People()
# print(zs.__name) #因为该属性被私有话,所以不能在外部被访问
print(zs.age)
print(zs)
print('--------------------------')
class Student(People):
pass
student=Student()
# print(student.__name) #私有属性是不能子类继承的
print(student.age)
#私有化属性可以在类里面修改,访问
class Person(object):
__age=18
def get_age(self): #访问私有属性
return Person.__age
def set_age(self,age): #修改私有属性
Person.__age=age
xiaoming=Person()
print(xiaoming.get_age())
xiaoming.set_age(30)
print(xiaoming.get_age())
#私有化方法:把普通的方法设置成私有化方法,防止子类意外重写,不允许外部调用
class A(object):
def __myname(self): #方法私有化
print('jr')
def myname(self): #普通方法
print('JR')
a=A()
a.myname()
# a.__myname() #不能调用私有化方法
运行结果