python 类 私有属性,私有方法,python私有成员不能从对象访问
我们之前讨论过三个级别的访问限制。它们是公共的、私人的和受保护的。那么,私有属性真的不可访问吗?今天我们一起来测试一下。
为了理解私有属性是否真的不可访问,我们需要从Python如何实现私有属性开始。在Python中,双下划线的属性将被更改为_ClassName__PropertyName的形式。用代码演示一下:
classFoo(object):
__bar=123
打印(Foo。_Foo__bar)#123运行后可以知道__bar的值是正常输出的,但是不建议用这种方式访问私有属性,因为不同的Python解释器对私有属性的处理是不同的。
特例
有一种使用双下划线定义私有属性的特殊情况。当属性后面也有两个下划线时,这个属性会被Python解释器当作一个神奇的方法,所以不会被当作private。
classFoo(object):
__bar__=123
打印(Foo。__bar__)#123上面的代码输出123,证明Python解释器并没有把__bar__当成私有属性。在定义私有属性时,应该注意名称末尾只能有一个下划线。
另一个特例
如果定义的属性名是_ _?直接试试:
classFoo(object):
__=123
打印(Foo。__)#123可以发现名为__的属性不被认为是私有的,有多个下划线的属性也不是私有的(比如_ _ _ _ _ _ _ _ _)。
这些是python私有属性访问的一些测试。更多Python学习推荐:PyThon学习网教学中心。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。