面向对象速查笔记(三)
Published on 2018 - 01 - 09
设置私有属性和私有方法
class Women:
"""
私有属性或方法,只能在类内部使用,不可以在外部访问
只需要在属性或方法前加两个下划线即可设置私有
"""
def __init__(self, name):
self.name = name
self.__age = 18
def __secret(self):
print("%s的年龄是%d" % (self.name, self.__age))
xiaofang = Women("小芳")
"""
xiaofang.__secret()
print(xiaofang.__age)
会报错
如果将类中 __secret前面的两个下划线去掉,
那么可以打印出18岁的结果,但print(xiaofang.__age)
仍然不可以访问,因为__age仍然是私有属性
(没有创建对象,直接运行方法,属于内部访问)
"""
其实python内没有真正的私有,只不过是解释器做了些特殊处理,通过特殊方法也可以访问到私有属性或方法。但是不推荐这么做。
print(xiaofang._Women__age)
xiaofang._Women__secret()