python的私有属性

class Test:
    attr1 = 100 #公有属性
    _attr2 = 200 #私有属性
    __attr3 = 300 #私有属性

#你们可以用我的私有属性,但是我的私有属性更改了,我不会通知你
#只要有下划线标识的私有属性,只能在类内部使用,不要在类外部使用

#类属性可以通过类和实例对象访问
c =Test()
print(Test.attr1)
print(c.attr1)

#单下划线开头,对外是公开的,可以直接访问
print(Test._attr2)
print(c._attr2)

#双下划线开头的私有属性,对外不能直接访问。为了保护这个变量(对外改了一个名字)
# print(Test.__attr3)
# print(c.__attr3)
#在原有的属性名上加了 _类名

print(Test._Test__attr3)   #通过类访问
print(c._Test__attr3)    #通过实例对象访问

print(Test.__dict__)



#私有属性的继承问题
class A(Test):
    '''
    A继承 Test
    '''
    pass
a = A()
print(a.attr1)
print(a._attr2)
print(a._Test__attr3)

#私有属性可以被继承
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值