认识Python继承与私有化

        前言:私有化与继承模式,在编程封装过程中是不可避免使用的,今天我们就来认识一下,他们的使用方式和共性吧

一、什么是私有化?为什么要使用私有化?

        答:私有化:我想藏起来,不给外面的人看见/访问/修改,对象、钱财、私房钱 --隐私性强的

        答:Python类默认情况下,所有的方法都可以被外部访问(当然其他特殊情况不论),我们为啥要使用私有化嘞?害,还不是为了不想让其他随便用,只想在某个类互相调用。

二、_(浅私有)和__(深私有)的区别

python面向对象 -私有化:
    1、_属性/_方法
        约定俗成
        通过对象名._属性/_方法实际上是可以访问的。
        但是它的意思就是,别访问我,我是私有化。全靠自觉
    2、__属性/__方法
        深度私有。
        通过对象名.__属性/__方法访问不到。
        只有类内部才能访问  ---如果类内部定义了访问私有的方法。可以通过这个方法得到私有属性的值。
                            ---如果没有定义的话,那私有属性就是除了类以外,都不可以访问

self._pri_money = 200  #这个就是浅私有  在外面都可以访问
self.__svip_pri_money #这个就是深私有 只能在内的内部才能访问

三、私有属性

1、在类的外面不能被访问的属性,私有属性只能在类的内部使用
2、私有属性通过双下划线开头进行定义:__name、 self.__age
3、强行访问方式:
    cl.__dict__:获取对象的所有属性
    print(TestDemo._TestDemo__name)
    print(cl._TestDemo__age)

class TestDemo:
    __name = "钱包"
    _car = "车"
    
    def __init__(self,age):
        self.__age = age
        
    def test_01(self):
        print(self.__name)
        print(self.__age)

if __name__ == '__main__':
    cl = TestDemo(20)
    # cl.test_01()
    # print(TestDemo.__name)
    print(TestDemo.__dict__)
    print(cl.__dict__)
    print(TestDemo._TestDemo__name)
    print(cl._TestDemo__age)

响应:

{'__module__': '__main__', '_TestDemo__name': '钱包', '_car': '车', '__init__': <function TestDemo.__init__ at 0x000001F150A342F0>, 'test_01': <function TestDemo.test_01 at 0x000001F150A34400>, '__dict__': <attribute '__dict__' of 'TestDemo' objects>, '__weakref__': <attribute '__weakref__' of 'TestDemo' objects>, '__doc__': None}
{'_TestDemo__age': 20}
钱包
20

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值