天天看点

Python入门之面向对象的多态

本章目录:

    一、多态

    二、多态性

    三、鸭子类型

==============================

一、多态

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

  动物有多种形态:人,狗,猪.

  linux中“一切皆文件”,文件具有可写可读特性:

 

二、多态性

  1. 什么是多态动态绑定(在继承的背景下使用时,有时也称为多态性)

    多态性是指在不考虑实例类型的情况下使用实例。

  多态性分为静态多态性和动态多态性:

    静态多态性:如任何类型都可以用运算符+进行运算

    动态多态性:

  2. 为什么要用多态性(多态性的好处)

    其实大家从上面多态性的例子可以看出,我们并没有增加什么新的知识,也就是说python本身就是支持多态性的,这么做的好处是什么呢?

    

    1.增加了程序的灵活性

      以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal)

    2.增加了程序额可扩展性

      通过继承animal类创建了一个新的类,使用者无需更改自己的代码,还是用func(animal)去调用 

三 、鸭子类型

python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象

也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。

例1:利用标准库中定义的各种‘与文件类似’的对象,尽管这些对象的工作方式像文件,但他们没有继承内置文件对象的方法

例2:其实大家一直在享受着多态性带来的好处,比如Python的序列类型有多种形态:字符串,列表,元组,多态性体现如下