python面向对象学习

网友投稿 578 2022-11-22

python面向对象学习

python面向对象学习

文章目录

​​1.1基础​​​​1.2封装​​​​1.3继承和派生​​​​1.4多态和鸭子类型​​

1.1基础

1.对象:对象是数据和功能(函数)的集合体 2. 类:类是具有共同属性(数据、函数)的对象的总称注:先定义类后实例化对象 3. 属性访问:可以通过__dict__访问属性的值 4. 属性查找和方法绑定:对象的名称空间里只存放着对象独有的属性,而对象们相似的属性是存放于类中的。对象在访问属性时,会优先从对象本身的__dict__中查找,未找到,则去类的__dict__中查找

1.2封装

1.隐藏属性(__) 2.开放接口 3.property

1.3继承和派生

1.通过类的内置属性__bases__可以查看类继承的所有父类

2.属性查找

3.广度优先

4.Pyton Mixins机制

5.子类可以派生出自己新的属性,在进行属性查找时,子类中的属性名会优先于父类被查找

6.组合

1.4多态和鸭子类型

1.多态指的是一类事物有多种形态

2.多态性的本质在于不同的类中定义有相同的方法名,这样我们就可以不考虑类而统一用一种方式去使用对象,可以通过在父类引入抽象类的概念来硬性限制子类必须有某些方法名

import abc# 指定metaclass属性将类设置为抽象类,抽象类本身只是用来约束子类的,不能被实例化class Animal(metaclass=abc.ABCMeta): @abc.abstractmethod # 该装饰器限制子类必须定义有一个名为talk的方法 def talk(self): # 抽象方法中无需实现具体的功能 passclass Cat(Animal): # 但凡继承Animal的子类都必须遵循Animal规定的标准 def talk(self): passcat=Cat() # 若子类中没有一个名为talk的方法则会抛出异常TypeError,无法实例化

3.只需要制造出外观和行为相同对象,同样可以实现不考虑对象类型而使用对象,这正是Python崇尚的“鸭子类型”(duck typing

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈SpringBoot Bean加载优先级的问题
下一篇:008 力扣 69. x 的平方根
相关文章

 发表评论

暂时没有评论,来抢沙发吧~