zoukankan      html  css  js  c++  java
  • Python 面向对象 --- 私有属性和私有方法

    01,应用场景及定义方式

    应用场景

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

    定义方式

    • 定义属性或方法时,在 属性名或者方法名前 增加连个下划线,定义的就是 私有 属性或方法

    
        class Women:
            def __init__(self, name):
                self.name = name
                self.__age = 18
        
            # def __secret(self):
            def secret(self):
                # 在对象的方法内部,是可以访问对象的私有属性的
                print("%s 的年龄是 %d" % (self.name, self.__age))
        
        
        namei = Women("娜美")
        # 私有属性和私有方法,在外界不能直接别访问
        # namei.__age()
        # namei.__secret()
        namei.secret()
        
        #  结果呈现
        娜美 的年龄是 18
    
    

    02,伪私有属性和私有方法

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

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

    • 在给 属性、方法 命名时,实际是对 名称 做了一些特殊处理,使得外界无法访问到
    • 处理方式: 在 名称 面前加上 __类名 => __类名__名称
    
        class Women():
            def __init__(self, name):
                self.name = name
                self.__age = 18
        
            def __secret(self):
            # def secret(self):
                # 在对象的方法内部,是可以访问对象的私有属性的
                print("%s 的年龄是 %d" % (self.name, self.__age))
        
        
        namei = Women("娜美")
        # 私有属性和私有方法,在外界不能直接别访问
        # namei.__age()
        namei._Women__secret()
        # namei.secret()
        
        # 结果呈现
        娜美 的年龄是 18
    
    
  • 相关阅读:
    mysql命令集锦
    linux 删除文件名带括号的文件
    linux下的cron定时任务
    struts2文件下载的实现
    贴一贴自己写的文件监控代码python
    Service Unavailable on IIS6 Win2003 x64
    'style.cssText' is null or not an object
    "the current fsmo could not be contacted" when change rid role
    远程激活程序
    新浪图片病毒
  • 原文地址:https://www.cnblogs.com/xiaoqshuo/p/9517300.html
Copyright © 2011-2022 走看看