美文网首页
python实例访问私有变量

python实例访问私有变量

作者: YYL07 | 来源:发表于2018-07-10 15:34 被阅读0次

Python不允许实例化的类访问私有数据,但你可以使用 object._className__attrName 访问属性

实例

#!/usr/bin/python
# -*- coding: UTF-8 -*-

class JustCounter:
    __secretCount = 0  # 私有变量
    publicCount = 0    # 公开变量

    def count(self):
        self.__secretCount += 1
        self.publicCount += 1
        print self.__secretCount

counter = JustCounter()
counter.count()
counter.count()
print counter.publicCount
print counter.__secretCount  # 报错,实例不能访问私有变量

Python 通过改变名称来包含类名:

1
2
2
Traceback (most recent call last):
  File "test.py", line 17, in <module>
    print counter.__secretCount  # 报错,实例不能访问私有变量
AttributeError: JustCounter instance has no attribute '__secretCount'

Python不允许实例化的类访问私有数据,但你可以使用 object._className__attrName 访问属性,将如下代码替换以上代码的最后一行代码:
print counter._JustCounter__secretCount

执行以上代码,执行结果如下:

1
2
2
2

相关文章

  • python实例访问私有变量

    Python不允许实例化的类访问私有数据,但你可以使用 object._className__attrName 访...

  • Web36.this_原型链_继承

    三种变量 实例变量: (this)类的实例产能访问到的变量静态变量: (属性)直接类型对象能访问到的变量私有变量:...

  • 4-8 私有属性和数据封装

    java中的 private 的私有属性,Python用"__变量名" 的方式,这样实例就无法访问到这个属性了 其...

  • 02-创建型模式-单例模式

    单例模式 单例模式:类只能创建一个实例,并提供对实例的静态访问方法。要点:私有构造器静态私有变量声明可全局访问的公...

  • python部分规范 (pep8规范)

    1.全局变量:大写字母,单词之间用_分割 2.实例变量:以_开头,其他和普通变量一样 3.私有实例变量(外部访问会...

  • Python私有变量访问限制

    Python内置了一些特殊变量,以前后上下划线标注,同时我们自己要想定义一些变量,不想让外部访问,又该怎么做呢?更...

  • pro objective-c

    2.2实例变量2.2.1设置访问实例变量的方式2.2.2声明实例变量2.2.3访问实例变量 收获:主要是关注变量的...

  • python基础 python类的成员和装饰器

    Python和c++一样,可以定义类,可以继承,类中又包含了类变量、实例变量(私有变量和公有变量)、方法(包括静态...

  • 关于成员变量、实例变量、属性

    还是老样子,直接入正题。势必今天开始不再混淆成员变量、实例变量、属性! 有成员变量、私有成员变量;实例变量、私有实...

  • Python3 - 在类中封装属性名

    问题 封装类的实例的“私有”数据,但是Python语言并没有访问控制。 解决方案 Python程序员不是依赖语言特...

网友评论

      本文标题:python实例访问私有变量

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