基础学习010——公有与私有"/>
Python基础学习010——公有与私有
# 公有权限:直接书写的方法和属性都是公有,公有的属性和方法在任意地方都可以使用
# 私有权限:在类的内部属性名或方法名前边加上两个下划线,这个属性或方法就是私有的,只能在类的内部使用
# 什么时候定义私有:属性和方法不想在外部被随意访问更改,一般测试用不到私有,开发根据需求文档确认私有# 案例:定义person类,属性name,age.不希望年龄被随意修改
class Person:def __init__(self, name, age):self.name = nameself.__age = agedef __str__(self):return f'姓名:{self.name},年龄:{self.__age}'xm = Person('小明', 20)
print(xm)
# print(xm.__age) # 在类外部使用私有属性,会报错,提示没有该属性
xm.__age = 18 # 这一步其实没有更改私有属性,而是在外部添加了一个公有属性__age
# 私有的本质:python解释器在执行代码时,发现属性或方法前面有__,会自动在这个名字前边加上__类名前缀,
# 即添加的__age私有属性在执行时实际叫self._Person__age,跟在外部添加的公有属性__age完全不一样
# 所以实际上print(xm._Person__age)是可以的,但是不要这样使用,了解即可.同理私有方法也是这样
print(xm)# 就要使用私有方法怎么办呢:在类的内部定义一个公有方法,通过该方法调用私有方法,以此来实现私有方法的间接使用
# ----------------------------------------------------------------------------
# 魔法属性:对象.__dict__:可以将对象具有的属性组成字典打印,包括私有属性
print(xm.__dict__)
更多推荐
Python基础学习010——公有与私有
发布评论