Python面向对象多态实现原理及代码实例
多态
指同一个方法调用由于对象不同可能会产生不同的行为。
关于多态要注意以下几点:
多态是方法的多态,属性没有多态多态的存在有两个必要条件:继承、方法重写
代码如下
class Man: def eat(self): print('饿了,准备吃饭') class Chinese(Man): def eat(self): print('中国人用筷子吃饭') class English(Man): def eat(self): print('英国人用刀叉吃饭') class India(Man): def eat(self): print('印度人用右手吃饭') def manEat(m): if isinstance(m,Man): m.eat() else: print('不能吃饭') manEat(Chinese()) manEat(India())
结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Python面向对象之接口、抽象类与多态详解
本文实例讲述了Python面向对象之接口.抽象类与多态.分享给大家供大家参考,具体如下: 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 接口主要是java等语言中的概念,python中并没有明确的限定 from abc import ABCMeta,abstractmethod class Pay
-
Python 面向对象之封装、继承、多态操作实例分析
本文实例讲述了Python 面向对象之封装.继承.多态操作.分享给大家供大家参考,具体如下: 封装.继承.多态 是面向对象的3大特性 为啥要封装 好处 在使用面向过程编程时,当需要对数据处理时,需要考虑用哪个模板中哪个函数来进行操作,但是当用面向对象编程时,因为已经将数据存储到了这个独立的空间中,这个独立的空间(即对象)中通过一个特殊的变量(class)能够获取到类(模板),而且这个类中的方法是有一定数量的,与此类无关的将不会出现在本类中,因此需要对数据处理时,可以很快速的定位到需要的方法是谁
-
Python面向对象之继承和多态用法分析
本文实例讲述了Python面向对象之继承和多态用法.分享给大家供大家参考,具体如下: Python 类的继承和多态 Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候,可以从某个现有的class 继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 我们先来定义一个class Person,表示人,定义属性变量 name 及 s
-
Python类的继承、多态及获取对象信息操作详解
本文实例讲述了Python类的继承.多态及获取对象信息操作.分享给大家供大家参考,具体如下: 继承 类的继承机制使得子类可以继承父类中定义的方法,拥有父类的财产,比如有一个Animal的类作为父类,它有一个eat方法: class Animal(object): def __init__(self): print("Animal 构造函数调用!") def eat(self): print("Animal is eatting!") 写两个子类,Cat和Dog类,继
-
Python面向对象程序设计多继承和多态用法示例
本文实例讲述了Python面向对象程序设计多继承和多态用法.分享给大家供大家参考,具体如下: 多继承 就是一个子类继承多个父类: 多继承的例子,如下: # -*- coding:utf-8 -*- #! python3 class Base(object): def test(self): print("------base") class A(Base): def test1(self): print("-----test1") class B(Base): de
-
Python 的类、继承和多态详解
类的定义 假如要定义一个类 Point,表示二维的坐标点: # point.py class Point: def __init__(self, x=0, y=0): self.x, self.y = x, y 最最基本的就是 __init__ 方法,相当于 C++ / Java 的构造函数.带双下划线 __ 的方法都是特殊方法,除了 __init__ 还有很多,后面会有介绍. 参数 self 相当于 C++ 的 this,表示当前实例,所有方法都有这个参数,但是调用时并不需要指定. >>&g
-
Python面向对象程序设计类的多态用法详解
本文实例讲述了Python面向对象程序设计类的多态用法.分享给大家供大家参考,具体如下: 多态 1.多态使用 一种事物的多种体现形式,举例:动物有很多种 注意: 继承是多态的前提 函数重写就是多态的体现形式 演示:重写Animal类 第一步:先定义猫类和老鼠类,继承自object,在其中书写构造方法和eat方法 第二步: 抽取Animal父类,定义属性和eat方法,猫类与老鼠类继承即可 第三步: 定义人类,在其中分别定义喂猫和喂老鼠的方法 第四步:使用多态,将多个喂的方法提取一个. # 测试类
-
Python3.5面向对象程序设计之类的继承和多态详解
本文实例讲述了Python3.5面向对象程序设计之类的继承和多态.分享给大家供大家参考,具体如下: 1.继承的定义 继承是指:可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. (1)通过继承创建的新类称为"子类"或"派生类". (2)被继承的类称为"基类"."父类"或"超类". 继承的过程,就是从一般到特殊的过程.要实现继承,可以通过"继承"(Inherit
-
Python面向对象多态实现原理及代码实例
多态 指同一个方法调用由于对象不同可能会产生不同的行为. 关于多态要注意以下几点: 多态是方法的多态,属性没有多态多态的存在有两个必要条件:继承.方法重写 代码如下 class Man: def eat(self): print('饿了,准备吃饭') class Chinese(Man): def eat(self): print('中国人用筷子吃饭') class English(Man): def eat(self): print('英国人用刀叉吃饭') class India(Man):
-
Python面向对象之继承原理与用法案例分析
本文实例讲述了Python面向对象之继承原理与用法.分享给大家供大家参考,具体如下: 目标 单继承 多继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用,相同的代码不需要重复的编写 多态 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度 01. 单继承 1.1 继承的概念.语法和特点 继承的概念:子类 拥有 父类 的所有 方法 和 属性 继承的语法 class 类名(父类名): pass 子类 继承自 父类,可以直接 享受
-
Python实现图片批量加入水印代码实例
这篇文章主要介绍了Python实现图片批量加入水印代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 写文章的时候可以设置是否添加水印.可是,有些图片可能想加水印,有些不想加水印,该怎么办呢? 配置环境 python3 + pillow pip3 install pillow 引入库 from PIL import Image, ImageSequence import os import random 效果预览: 使用方法: 在脚本同目录
-
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
本文实例讲述了Python面向对象程序设计之类和对象.实例变量.类变量用法.分享给大家供大家参考,具体如下: 类和对象: 类的定义:用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类的优势:将一个对象的功能集中于一体,便于操作,降低了代码的重复. 实例化:创建一个类的实例,类的具体对象. 对象:通过类定义的数据结构实例.对象包括两个数据成员(类变量和实例变量)和方法. 使用 class 语句来创建一个新类: class Dog: #self
-
python英语单词测试小程序代码实例
这篇文章主要介绍了python英语单词测试小程序代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 爬取了扇贝英语网,并制作了一个英语单词测试的小程序,还能生成错词本,一起来看下代码吧- import requests #扇贝网爬虫,获取英语单词 category_res=requests.get('https://www.shanbay.com/api/v1/vocabtest/category/?_=1566889802182') ca
-
python制作英语翻译小工具代码实例
这篇文章主要介绍了python制作英语翻译小工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用python爬虫可以制作英语翻译小工具.来看下代码吧- import requests,json #函数封装 def translator(): session=requests.session() i=input('请问你要翻译什么?') url='http://fanyi.youdao.com/translate' headers={
-
用Python画一个LinkinPark的logo代码实例
这篇文章主要介绍了用Python画一个LinkinPark的logo代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 # -*- coding: UTF-8 -*- from turtle import * width(17) right(25) circle(150,200,20) left(65) forward(240) left(120) forward(195) left(120) forward(135) left(
-
Python爬取豆瓣视频信息代码实例
这篇文章主要介绍了Python爬取豆瓣视频信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 这里是爬取豆瓣视频信息,用pyquery库(jquery的python库). 一:代码 from urllib.request import quotefrom pyquery import PyQuery as pqimport requestsimport pandas as pddef get_text_page (movie_name)
-
python 利用jinja2模板生成html代码实例
这篇文章主要介绍了python 利用jinja2模板生成html代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 from jinja2 import Environment, FileSystemLoader import json def generate_html(data): env = Environment(loader=FileSystemLoader('./')) # 加载模板 template = env.get_tem
-
python根据文本生成词云图代码实例
这篇文章主要介绍了python根据文本生成词云图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 效果 代码 from wordcloud import WordCloud import codecs import jieba #import jieba.analyse as analyse from scipy.misc import imread import os from os import path import matplot
随机推荐
- php批量删除操作(数据访问)
- 详解JavaScript异步编程中jQuery的promise对象的作用
- JS处理json日期格式化问题
- Linux ipcs命令与ipcrm命令的用法详解
- 无人值守安装IIS 6.0的原理分析
- ASP.NET动态添加控件一例
- ajax实现的提交文章前进行敏感词审核的代码
- javascript实现在网页中运行本地程序的方法
- Android仿QQ左滑删除置顶ListView操作
- Call 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。
- Android listView 绘制表格实例详解
- Javascript之this关键字深入解析
- IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
- 严防死守,保卫IE
- java实现ftp文件上传下载功能
- Android 模拟信号示波器示例代码
- 基于Java 注解(Annotation)的基本概念详解
- 提升Android应用视觉吸引效果的10个UI设计技巧
- python使用标准库根据进程名如何获取进程的pid详解
- C++中图片重命名实现代码