python 私有属性_Python面向对象(三)

Python面向对象(二)

人丑就得多读书:Python面向对象(二)​zhuanlan.zhihu.com
1a4699c3e75f150f24ba6c9004223b8f.png

重点:类的封装

什么是封装?

  • 封装:对属性和方法的抽象、隔离和保护;属性-变量;方法-函数
  • 属性:私有属性和公开属性。私有属性:只能在类内部访问。公有属性:通过类/对象名访问。
  • 方法:私有方法和公有方法。私有方法:只能在类内部使用。公开方法:可以通过类/对象名访问。
  • 属性封装按两个维度,分为以下四种属性;

7f98568236f37f0018c04ef28b0d5edd.png
  • 公开类属性--->类属性:在类空间定义的属性
  • 私有类属性:仅供当前类访问的类属性,子类不能访问,私有类属性名开始需要有两个下划线,如__count---------->只能在类的内部被方法所访问,不能通过<类名/对象名>.<属性名>方式访问,利用方法中返回值的方法访问。这种方法的好处在于:可以在getCount()方法中判断访问的有效性、可以对访问次数进行计数......

e071877a24116c38ad9eadfd85520ad7.png
  • 公开实例属性:即实例属性,需要http://self.xxx来定义的属性
  • 私有实例属性:属性名前加两下划线

fc12dc7e8523f8660df14ca8036b596e.png
  • 小结:私有属性仅供类内部使用,可以对其进行保护,然而仅仅是形式上的保护

3f15a5f36deba05d83260b4c51481346.png

双下划线方法只是一种转换约定,转换后,类内原有名字发生了变化,是形式上的私有。通过如上的方式仍然可以访问私有属性。----->可以换个名字再访问

私有方法和公开方法

  • 私有方法:只在类内部公开使用的方法,同样是名字前加两个下划线

0428cc24df39709decd454f65cf3ca22.png
  • 同样也是形式上的私有,程序员逻辑而非安全逻辑,体现了python重视约定的理念

类的保留属性

  • 特殊属性,双下划线开头和结尾
  • 仅用类名访问的保留属性:

ded0f542a9c29e764984fb765c28f449.png
  • 其他保留属性-->类名/对象名访问

d6217711ed836339c6ee45c6a2418f2d.png
  • <类/对象>.__dict__返回对应成员的字典

f58754fac0c797f1291470ba16b5cf2a.png

类的保留方法

  • python预留了保留方法的接口,但没有规定具体的保留方法逻辑,保留方法的逻辑需要程序员编写

52602910b0c63103de72337451f11226.png

7ae4624f50366ffab98797e5cc03dc57.png

aab29cddc0bf293f5b029da66950f170.png
  • 对应比较操作的保留方法

b6eca0ba018207115f1b9a3e01cec53b.png

------------------------->>>>python类的继承

继承的理解

  • 继承:代码复用的高级抽象,是新定义类能够几乎完全使用原有类属性与方法的过程

3b7a8d3615b59ac067bf8a1a3fd43af1.png
  • 多级别继承:超类、父类、子类
  • 多继承:派生类继承于多个基类

015ad6cfb7e312afe203bdb4beb31749.png

类继承的构建

  • 定义继承

46e6519d75e5902c301ab71c386314bd.png

基类名可以带有路径:ModuleName.BaseClassName

  • 派生类可以直接使用基类的属性和方法;使用基类的类方法和类属性时,要用基类的类名调用

66962ea8e351d8c663b027766f55c79d.png
  • 继承关系的判断

7e8968568e3fdf3533be022cfcf7d3e4.png
  • 派生类只能继承基类的公开属性和方法,不能继承基类的私有属性和私有方法

P21 00:00:00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值