1、定义方式
在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法。
2、为什么要定义私有属性和私有方法
在实际开发中,对象的某些属性或方法只希望在对象的内部被使用,而不希望在外部被访问到。
2.1 私有属性或方法在对象内部可以被访问
class Person: def __init__(self, name): self.name = name # 定义私有属性 self.__like = "看苍老师表演艺术" def like(self): # 私有属性在对象的内部是可以访问的 print(F"{self.name} 爱看电影,特别喜欢{self.__like}") # 定义私有方法 def __secret(self): print(F"私有方法在对象的内部是也是可以访问的") def love(self): # 私有方法在对象的内部是也是可以访问的 self.__secret() xiaoming = Person("小明") xiaoming.like() # 输出:小明 爱看电影,特别喜欢看苍老师表演艺术 xiaoming.love() # 输出:私有方法在对象的内部是也是可以访问的
2.2 私有属性或方法在对象外部不能被访问
3、为什么在私有属性和私有方法前加“伪”
因为在Python
中,并没有真正意义的私有,在定义私有属性或方法时,实际是对名称做了一些特殊处理,使得外界无法访问到。
处理方式是在私有属性或方法的名称前面加上 _类名
=> _类名__名称
按照处理后方式,在外部一样可以访问到私有的属性或方法,但是在实际开发中建议不要这么做!