栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python变量的访问控制

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python变量的访问控制

1.类变量 :不用实例化对象,通过类名即可访问,值可以修改
2.实例变量:必须要实例化对象才能访问到
3.单划线变量: _name 代表是protect变量,原则不允许外部直接访问,但是也能访问到
4.双划线变量:__name 代表是private变量,仅允许这个类访问,子类也不能访问,如果非得要在类外访问,其对象名会变成_类名__变量名访问,可以通过类对象._类名__变量名访问
class VarTest:
    classVar = "classVar"
    __privateVar= "__privateVar"
    _proectvar = "_proectvar"
    def __init__(self,value=3):
        self.objectVar = value
        self.__objectprivate = "__objectprivate"
        self._proectvars = "_proectvars"
    def getvar(self):
        print("在类方法中类变量",VarTest.classVar)
        print("在类方法中访问实例变量",self.objectVar)
        print("在类方法中访问类的私有变量",self.__objectprivate)
        print("在类方法中访问类的保护变量",self._proectvars)
class Subclass(VarTest):
    def getsubvar(self):
        print("在子类方法中访问父类的类变量",VarTest.classVar)
        print("在子类方法中访问父类的实例变量",self.objectVar)
      #  print("在子类方法中访问父类的私有变量",self.__objectprivate)#访问不到
        print("在子类方法中访问父类的保护变量",self._proectvars)

if __name__ == '__main__':
    print("类外直接访问类变量",VarTest.classVar)
    print("类外直接访问类的保护变量",VarTest._proectvar)
   # print("类外直接访问类的保护变量", VarTest.__privateVar)#访问不到
    # VarTest.varA
    test =VarTest()
    print("通过类的实例对象访问类的私有变量", test._VarTest__privateVar)
    print("通过类的实例对象访问实例变量", test.objectVar)
    print("通过类的实例对象访问被保护的实例变量", test._proectvars)

'''
返回结果如下:
类外直接访问类变量 classVar
类外直接访问类的保护变量 _proectvar
通过类的实例对象访问类的私有变量 __privateVar
通过类的实例对象访问实例变量 3
通过类的实例对象访问被保护的实例变量 _proectvars
'''

if __name__ == '__main__':
    test = VarTest()
    test.getvar()
'''
返回结果如下:
在类方法中类变量 classVar
在类方法中访问实例变量 3
在类方法中访问类的私有变量 __objectprivate
在类方法中访问类的保护变量 _proectvars
'''

    sub = Subclass()
    sub.getsubvar()

'''
返回结果如下:
在子类方法中访问父类的类变量 classVar
在子类方法中访问父类的实例变量 3
在子类方法中访问父类的保护变量 _proectvars
'''

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/619394.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号