python多态_python多态和规范
python规范(接口类)
接口类可以规范代码,但接口类本身是不实现的
class Payment:
def pay(self,money):
raise Notlmplemented
class Wechat(Payment):
def pay(self, money):
print('已经用微信支付了%s元' % money)
class Alipay(Payment):
def pay(self, money):
print('已经用支付宝支付了%s元' % money)
class Applepay(Payment):
def fuqian(self, money):
print('已经用applepay支付了%s元' % money)
def pay(pay_obj, money): # 统一支付入口
pay_obj.pay(money)
wechat = Wechat()
ali = Alipay()
app = Applepay()
pay(ali,200)
pay(app,200)
运行后如下
app = Applepay()
TypeError: Can't instantiate abstract class Applepay with abstract methods pay
以下是接口类的另一种写法
from abc import abstractmethod, ABCMeta
class Payment(metaclass=ABCMeta): # 元类 默认的元类 type
@abstractmethod
def pay(self, money): pass # 没有实现这个方法
接口隔离原则
接口类在python中不存在,只是一种规范,python中自带多继承所以我们直接用class来实现接口类
抽象类
多态
多态指的是一类事物有多种形态
动物有多种形态:人,狗猪
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')
鸭子类型
python多态_python多态和规范相关推荐
- python多态_Python 多态与抽象类
一.多态 1.1 什么是多态 多态也称"多态性",指的是同一种类型的事物,不同的形态. 在python中的多态指的是让多种类若具备类似的数据属性与方法属性,都统一好命名规范,这样可 ...
- python多态_python 多态
第一类多态: from cat import Cat from mouse import Mouse from person import Person ''' 多态:一种事物的多种形态 最终目标:人 ...
- python多态_Python多态
面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 实现代码的重用,相同的代码不需要重复的编写 设计类的技巧 子类针对自己特有的需求,编写特定的代码 ...
- python 多态_Python中的多态
面向对象的语言有四个特性,抽象.封装.继承和多态.在之前的文章中,给小伙伴们已经讲解了前三个.为什么要把多态放在最后一个讲呢?因为前面的三个特性是多态的基础,了解了前三个,了解多态就很容易啦~ 那么, ...
- 浅谈python使用多态跟不用多态的区别_python 多态和 super 用法
python 中的多态实现非常简单,只要是在子类中实现和父类同名的方法,便能实现多态,如果想在子类中调用父类的方法,有多种方法,但是当涉及菱形继承等问题是,super 就成为了比较好的解决方案. 普通 ...
- python中的多态用法_Python面向对象之多态原理与用法案例分析
本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...
- python继承和多态心得_python学习第十五天 -面向对象之继承和多态
大家都知道面向对象的三大特性:封装,继承,多态.封装特性在上一章节已经讲解过.这一章节主要讲解继承和多态. 继承:当定义一个类的时候,可以从现有的类进行继承.那么新定义的类可以称为子类,被继承的现有的 ...
- python封装继承多态_Python:封装、继承、多态、私有成员
Python作为一种面向对象语言,也有着面向对象的三种特性:封装.继承.多态. 封装: 将事物相关的属性和方法封装在某一个类里面,使得在调用类创建实例时,可以不用关心类内部的实现细节. 类的本质: 1 ...
- python中的多态是什么_Python中的多态
python中的多态是什么 Polymorphism is a concept of Object Oriented Programming, which means multiple forms o ...
最新文章
- mysql快速迁移数据sql_使用Navicat Premium工具快速迁移数据方法 适用于mysql及mssql数据库...
- Hdu-6242 2017CCPC-哈尔滨站 M.Geometry Problem 计算几何 随机
- 文科生能学懂python吗_文科生也能学得懂的Python入门视频
- 二叉排序树的删除操作
- 一起学习C语言:初谈指针(三)
- fckeditor组件使用---fckeditor调用的三种方法1
- 一步一坑学android之安装andriod studio(andriod studio3.0)
- Elasticsearch6.3.0安装IK分词插件
- vtiger 安装中文语言包(汉化的步骤)--拓展繁体中文
- HTML实现win10桌面,利用js实现仿win10桌面弹出窗口提示代码
- JAVA:18位身份证号码验证工具类(识别性别和生日、计算年龄)
- java计算机毕业设计社区养老综合服务平台服务端源码+系统+数据库+lw文档+mybatis+运行部署
- 计算机应用基础是科技,《最新计算机应用基础》科学技术指南丛书.pdf
- 记录一个问题:RJ45灯,绿灯与黄灯同时闪烁,连接出问题
- lua对接bmob数据库
- 如何一次打开多个Word文档
- 活字印刷引入简单工厂模式
- 全方位解读Web3域名:DID基石、NFT新增长点
- Silverlight框架
- ubuntu使用sudo su进入root报错Cannot execute /bin/csh: No such file or directory解决方法