Interpretación práctica 丨 El polimorfismo de las tres características principales del sistema orientado a objetos de Python

Resumen: Polimorfismo significa literalmente múltiples formas. En nuestro Python orientado a objetos, diferentes objetos tendrán diferentes comportamientos al recibir el mismo método o función, es decir, cada objeto puede usar su propia forma Para responder a una función común, diferentes formas de lograr diferentes resultados.

Polimorfismo significa literalmente formas múltiples, como personas negras, amarillas, blancas, etc. Estas son las diferentes formas de una clase de cosas. En nuestro Python orientado a objetos, diferentes objetos están recibiendo Un mismo método o función producirá diferentes comportamientos, es decir, cada objeto puede responder a la función común a su manera, y lograr diferentes resultados de diferentes maneras.

Polimorfismo

1. Polimorfismo

Polimorfismo significa que una clase de cosas tiene múltiples formas.

Los animales tienen muchas formas: humanos, perros, cerdos.

import abc
class Animal(metaclass=abc.ABCMeta): #同一类事物:动物
    @abc.abstractmethod
    def talk(self):
        pass

class People(Animal): #动物的形态之一:人
    def talk(self):
        print('say hello')

class Dog(Animal): #动物的形态之二:狗
    def talk(self):
        print('say wangwang')

class Pig(Animal): #动物的形态之三:猪
    def talk(self):
        print('say aoao')

Hay muchas formas de archivos: archivos de texto, archivos ejecutables

import abc
class File(metaclass=abc.ABCMeta): #同一类事物:文件
    @abc.abstractmethod
    def click(self):
        pass

class Text(File): #文件的形态之一:文本文件
    def click(self):
        print('open file')

class ExeFile(File): #文件的形态之二:可执行文件
    def click(self):
        print('execute file')

2. Polimorfismo

Uno que es enlace dinámico polimórfico (cuando se usa en el contexto de la herencia, a veces se le llama polimorfismo)

El polimorfismo se refiere al uso de instancias independientemente del tipo de instancia

En los métodos orientados a objetos, el polimorfismo generalmente se expresa así:

Enviar el mismo mensaje a diferentes objetos (!!! obj.func (): es llamar al método func de obj, también conocido como enviar un mensaje func a obj), diferentes objetos tendrán diferentes comportamientos al recibir ( Ese es el método).

En otras palabras, cada objeto puede responder a mensajes comunes a su manera. El llamado mensaje es para llamar a una función, y diferentes comportamientos se refieren a diferentes implementaciones, es decir, ejecutar diferentes funciones.

比如:老师.下课铃响了(),学生.下课铃响了(),老师执行的是下班操作,学生执行的是放学操作,虽然二者消息一样,但是执行的效果不同

 

peo=People()
dog=Dog()
pig=Pig()

#peo、dog、pig都是动物,只要是动物肯定有talk方法
#于是我们可以不用考虑它们三者的具体是什么类型,而直接使用
peo.talk()
dog.talk()
pig.talk()
#更进一步,我们可以定义一个统一的接口来使用
def func(obj):
    obj.talk()

Tipo de pato

Tiempo divertido:

Python aboga por el tipo de pato, es decir, si parece que aúlla y camina como un pato, entonces es un pato.

Los programadores de Python suelen escribir programas basados ​​en este comportamiento. Por ejemplo, si desea escribir una versión personalizada de un objeto existente, puede heredar el objeto

También puede crear un objeto nuevo que se parezca y se comporte pero no tenga nada que ver con él. Este último se usa generalmente para preservar el acoplamiento flexible de los componentes del programa.

Ejemplo 1: Utilice varios objetos "similares a archivos" definidos en la biblioteca estándar. Aunque estos objetos funcionan como archivos, no heredan los métodos de los objetos de archivo integrados.

Ejemplo 2: el tipo de secuencia tiene muchas formas: cadena, lista, tupla, pero no tienen una relación de herencia directa

#二者都像鸭子,二者看起来都像文件,因而就可以当文件一样去用
class TxtFile:
    def read(self):
        pass

    def write(self):
        pass

class DiskFile:
    def read(self):
        pass
    def write(self):
        pass

 

Haga clic para seguir y conocer la nueva tecnología de Huawei Cloud por primera vez ~

Supongo que te gusta

Origin blog.csdn.net/devcloud/article/details/108709502
Recomendado
Clasificación