美文网首页
Python 面向对象 - 04 私有属性和私有方法

Python 面向对象 - 04 私有属性和私有方法

作者: flowerflower | 来源:发表于2019-03-03 16:55 被阅读0次
    😌😌

    一、应用场景及定义方式

    应用场景

    • 在实际开发中,对象某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到
    • 私有属性 就是 对象 不希望公开的 属性
    • 私有方法 就是 对象 不希望公开的 方法

    定义方式

    • 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法
    # 私有属性和私有方法
    class Cat:
        def __init__(self,name):
            self.name = name
            self.__age = 18
        def __eat(self):
            print("%d的%s吃撑了"%(self.__age,self.name))
    cat = Cat("小花")
    # 私有属性,外部不能直接访问
    # print(cat.__age)
    # 私有方法,外部不能直接调用
    #AttributeError: 'Cat' object has no attribute 'eat'
    # cat.__eat()
    

    二、伪私有属性和私有方法(科普)

    提示:在日常开发中,不要使用这种方式访问对象的 私有属性 或 私有方法

    Python 中,并没有 真正意义私有

    • 在给 属性方法 命名时,实际是对 名称 做了一些特殊处理,使得外界无法访问到
    • 处理方式:在 名称 前面加上 _类名 => _类名__名称
    print(cat._Cat__age)
    cat._Cat__eat()
    
    

    打印结果:

    18
    18的小花吃撑了
    

    相关文章

      网友评论

          本文标题:Python 面向对象 - 04 私有属性和私有方法

          本文链接:https://www.haomeiwen.com/subject/qlvryqtx.html