zoukankan      html  css  js  c++  java
  • Python私有属性和私有方法

    Python私有属性和私有方法

    一、总结

    一句话总结:

    在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法
    class Women:
    
        def __init__(self, name):
    
            self.name = name
            # 不要问女生的年龄
            self.__age = 18
    
        def __secret(self):
            print("我的年龄是 %d" % self.__age)
    
    
    xiaofang = Women("小芳")
    # 私有属性,外部不能直接访问
    # print(xiaofang.__age)
    
    # 私有方法,外部不能直接调用
    # xiaofang.__secret()

    二、Python私有属性和私有方法

    转自或参考:Python私有属性和私有方法 - 1769987233 - 博客园
    https://www.cnblogs.com/yzg-14/p/12185285.html

    01. 应用场景及定义方式

    应用场景

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

    定义方式

    • 在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法
    class Women:
    
        def __init__(self, name):
    
            self.name = name
            # 不要问女生的年龄
            self.__age = 18
    
        def __secret(self):
            print("我的年龄是 %d" % self.__age)
    
    
    xiaofang = Women("小芳")
    # 私有属性,外部不能直接访问
    # print(xiaofang.__age)
    
    # 私有方法,外部不能直接调用
    # xiaofang.__secret()

    02. 伪私有属性和私有方法(科普)

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

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

    • 在给 属性方法 命名时,实际是对 名称 做了一些特殊处理,使得外界无法访问到
    • 处理方式:在 名称 前面加上 _类名 => _类名__名称
    # 私有属性,外部不能直接访问到
    print(xiaofang._Women__age)
    
    # 私有方法,外部不能直接调用
    xiaofang._Women__secret()
    

      

     
  • 相关阅读:
    TIF转JPG
    跨线程取出控件的值的写法(不是跨线程赋予控件值)
    oracle根据正则表达式查找对应的字段
    oracle数据库连接字符串
    access检测表没有的字段,添加之
    解决 Unable to load DLL 'OraOps9.dll': 找不到指定的模块。 (Exception from HRESULT: 0x8007007E)
    oracle关键字使用
    to_number,Extract oracle的关键字
    OracleCommand.CommandText 无效
    调用带参数的线程两种方法
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13155568.html
Copyright © 2011-2022 走看看