zoukankan      html  css  js  c++  java
  • python 基础——私有属性

    私有属性

    python 私有属性以两个下划线开头。

    python 私有属性只能在类内部访问,类外面访问会出错。

    python 私有属性之所以不能在外面直接通过名称来访问,其实质是因为 python 做了一次名称变换。

    保护属性

    python 保护属性更多的是一种语法上的标识,用来提醒直接修改改对象时候要小心。

    python 保护属性和公开属性都可以在类外面直接访问。

    class NewClass(object):
        def __init__(self):
            self.public_field = 5    # public
            self.__private_field = 10    # private
            self._protect_field = 99    # protect
        
        def __private_method(self):
            print "I am private method"
        
        def public_method(self):
            print "I am public method"
    
    test = NewClass()
    
    print test.public_field
    test.public_method()
    
    print test.__dict__    # {'_NewClass__private_field': 10, 'public_field': 5}
    
    # 使用变换过后的名称访问,Success
    print test._NewClass__private_field    # 10    
    test._NewClass__private_method()    # I am private method 
    
    # 直接访问,Fail
    print test.__private_field    # AttributeError: 'NewClass' object has no attribute '__private_field'
    test.__private_method()    # AttributeError: 'NewClass' object has no attribute '__private_method'
            
  • 相关阅读:
    SpringBoot启动项目时提示:Error:java: 读取***.jar时出错;
    K8S操作
    二、kubernetes搭建集群
    三、Json方式函数
    一、Gulp
    大萨达所
    三、IIS通过目录方式部署以供外部调试
    四、附加到进程调试(.NET Framework)
    一、bootstrap-fontawesome-iconpicker组件
    表单
  • 原文地址:https://www.cnblogs.com/licongyu/p/5818290.html
Copyright © 2011-2022 走看看