专栏首页python3多态与多态性

多态与多态性

1. 什么是多态

    多态指的是同一种/类事物的不同形态

2.为何要用多态性

  1 增加了程序的灵活性

  2 增加了程序的可扩张性

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

    多态性:在多态的背景下,可以在不用考虑对象具体类型的前提下而直接使用对象

    多态性的精髓:统一

3. 如何用多态

class Animal:
    def speak(self):
        pass
class People(Animal):
    def shuo(self):
        print('say hello')
class Dog(Animal):
    def jiao(self):
        print('汪汪汪')
class Pig(Animal):
    def chang(self):
        print('哼哼哼')
obj1=People()
obj2=Dog()
obj3=Pig()
# obj1.speak()
# obj2.speak()
# obj3.speak()
def speak(animal):
    animal.speak()
speak(obj1)
speak(obj2)
speak(obj3)

python 崇尚鸭子类型

逗比时刻:

  Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’

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

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

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

class Disk:
    def read(self):
        print('Disk read')

    def write(self):
        print('Disk write')


class Memory:
    def read(self):
        print('Mem read')

    def write(self):
        print('Mem write')
obj1=Disk()
obj2=Memory()

obj1.read()
obj2.read()

View Code

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python语句-while

    PS:运行程序的时候不能使用pycharmIDE,因为python的IDE不带自动隐藏密码的功能,运行程序的时候进入cmd,使用python test_whil...

    py3study
  • python-sys模块

    sys模块最常用的就只有两个,sys.argv和sys.exit,sys.argv返回一个列表,包含了所有的命令行参数,sys.exit则是退出程序。再就是可以...

    py3study
  • Python全栈学习_day002知识点

    py3study
  • 初学者|今天掌握SnowNLP好不好

    本文简绍了SnowNLP的使用方法,这是一个处理中文文本内容的python类库,其主要功能包括分词、词性标注、情感分析、汉字转拼音、繁体转简体、关键词提取以及文...

    yuquanle
  • python中的函数

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

    六小登登
  • 12.程序编程基础6:选择和循环

    正常情况下,我们完成一件事情的过程中,可能会存在多种条件限制 如:用户去ATM机取钱->输入取款密码->输入正确,取钱成功 | 输入错误,退卡。 这样的情况...

    大牧莫邪
  • 实用干货:7个实例教你从PDF、Word和网页中提取数据

    导读:本文的目标是介绍一些Python库,帮助你从类似于PDF和Word DOCX 这样的二进制文件中提取数据。我们也将了解和学习如何从网络信息源(web fe...

    华章科技
  • python 中文情感分析 Snownlp库的使用

    SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于...

    叶庭云
  • 逆序打印字符串

    skylark
  • 如何使用print实现不换行打印

    首先思考一下为什么执行print("hello,world)会在同一行打印,而分别执行两次print("hello,world)就会换行打印

    刘早起

扫码关注云+社区

领取腾讯云代金券