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 中,并没有真正意义的私有,在定义私有属性或方法时,实际是对名称做了一些特殊处理,使得外界无法访问到。

处理方式是在私有属性或方法的名称前面加上 _类名 => _类名__名称

按照处理后方式,在外部一样可以访问到私有的属性或方法,但是在实际开发中建议不要这么做!

01-12 14:29