简单了解Python多态与属性运行原理
1.多态是指传入不同的对象,产生不同的结果
多态指的是一类事物有多种形态(一个抽象类有多个子类,因而多态的概念依赖于继承)
定义:多态是一种使用对象的方法,子类重写父类方法,调用不同子类对象的父类方法,可以产生不同的执行结果
好处:调用灵活,有了多态,更容易编写出通用的代码。
代码展示:
class Dog(object): def work(self): print('指哪打哪') class ArmyDog(Dog): def work(self): print('追击敌人') class DrugDog(Dog): def work(self): print('追查毒品') class Person(object): def work_with_dog(self, dog): dog.work() ad = ArmyDog() dd = DrugDog() daqiu = Person() daqiu.work_with_dog(ad) daqiu.work_with_dog(dd)
2.类属性就是类对象所拥有的属性,它被该类的所有实例对象所共有
类属性可以使用类对象或实例对象访问。
例如:
class Dog(object): tooth = 10 wangcai = Dog() xiaohei = Dog() print(Dog.tooth) print(wangcai.tooth) print(xiaohei.tooth)
得出的结果都为:10
记录的某项数据始终保持一致时,定义类属性
实例属性要求每个对象为其单独开辟一份内存空间来记录数据,而类属性为全类所共有,仅占用一份内存,更加节省内存空间。
3.修改类属性
类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示的是创建了一个实例属性
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
用实例解释Python中的继承和多态的概念
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self): print 'Animal is running...' 当我们需要编写Dog和Cat类时,就可以直接从Animal
-
Python类的继承、多态及获取对象信息操作详解
本文实例讲述了Python类的继承.多态及获取对象信息操作.分享给大家供大家参考,具体如下: 继承 类的继承机制使得子类可以继承父类中定义的方法,拥有父类的财产,比如有一个Animal的类作为父类,它有一个eat方法: class Animal(object): def __init__(self): print("Animal 构造函数调用!") def eat(self): print("Animal is eatting!") 写两个子类,Cat和Dog类,继
-
Python3.5面向对象程序设计之类的继承和多态详解
本文实例讲述了Python3.5面向对象程序设计之类的继承和多态.分享给大家供大家参考,具体如下: 1.继承的定义 继承是指:可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. (1)通过继承创建的新类称为"子类"或"派生类". (2)被继承的类称为"基类"."父类"或"超类". 继承的过程,就是从一般到特殊的过程.要实现继承,可以通过"继承"(Inherit
-
Python面向对象之接口、抽象类与多态详解
本文实例讲述了Python面向对象之接口.抽象类与多态.分享给大家供大家参考,具体如下: 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 接口主要是java等语言中的概念,python中并没有明确的限定 from abc import ABCMeta,abstractmethod class Pay
-
Python面向对象程序设计类的多态用法详解
本文实例讲述了Python面向对象程序设计类的多态用法.分享给大家供大家参考,具体如下: 多态 1.多态使用 一种事物的多种体现形式,举例:动物有很多种 注意: 继承是多态的前提 函数重写就是多态的体现形式 演示:重写Animal类 第一步:先定义猫类和老鼠类,继承自object,在其中书写构造方法和eat方法 第二步: 抽取Animal父类,定义属性和eat方法,猫类与老鼠类继承即可 第三步: 定义人类,在其中分别定义喂猫和喂老鼠的方法 第四步:使用多态,将多个喂的方法提取一个. # 测试类
-
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多态与属性运行原理
1.多态是指传入不同的对象,产生不同的结果 多态指的是一类事物有多种形态(一个抽象类有多个子类,因而多态的概念依赖于继承) 定义:多态是一种使用对象的方法,子类重写父类方法,调用不同子类对象的父类方法,可以产生不同的执行结果 好处:调用灵活,有了多态,更容易编写出通用的代码. 代码展示: class Dog(object): def work(self): print('指哪打哪') class ArmyDog(Dog): def work(self): print('追击敌人') class
-
简单了解Java多态向上转型相关原理
这篇文章主要介绍了简单了解Java多态向上转型相关原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 多态性是面向对象的第三大特征. 多态的优点 改善代码的组织结构和可读性. 能够创建可扩展的程序.(随时可以加入新功能) 消除类型之间的耦合关系. 说实话,作为小白的我,并不太能够理解上面三个优点.随着深入学习,理解应该会越来越深吧,共勉. 向上转型 概念 Java允许把子类对象赋值给父类的引用变量,不用做任何强制转换,系统自动完成.向上转型来自
-
简单了解Spring Web相关模块运行原理
Spring 的Web层中有4个模块,分别为spring-web, spring-webmvc, spring-websocket 和 spring-webmvc-portlet. spring-web spring-web 提供了核心的Web相关功能的集成,比如IoC容器的初始化.Web应用上下文(context)的初始化.多部(multipart)文件上传功能.HTTP客户端.Servlet 过滤器.远程调用.用于集成其它 web 框架及技术(如Hessian,Burlap)的基础结构. s
-
Python建造者模式案例运行原理解析
建造者模式的适用范围:想要创建一个由多个部分组成的对象,而且它的构成需要一步接一步的完成.只有当各个部分都完成了,这个对象才完整.建造者模式表现为复杂对象的创建与表现相分离,这样,同一个过程就有不同的表现. 假设我们要创建一个HTML页面生成器就可以使用建造者模式.该模式中,有两个参与者:建造者(builder)和指挥者(director).建造者负责创建负责对象的各个组成部分.在HTML例子中,这些组成部分包括:页面标题.文本标题.内容主体和页脚.指挥者使用一个建造者实例控制建造的过程.对
-
Python接口自动化测试框架运行原理及流程
本文总结分享介绍接口测试框架开发,环境使用python3+selenium3+unittest+ddt+requests测试框架及ddt数据驱动,采用Excel管理测试用例等集成测试数据功能,以及使用HTMLTestRunner来生成测试报告,目前有开源的poman.Jmeter等接口测试工具,为什么还要开发接口测试框架呢?因接口测试工具也有存在几点不足. 测试数据不可控制.比如接口返回数据不可控,就无法自动断言接口返回的数据,不能断定是接口程序引起,还是测试数据变化引起的错误,所以需要做一些初
-
Docker Compose 搭建简单的Python网络应用程序(步骤详解)
目录 前提条件 第1步:设置 第2步:创建一个Dockerfile 第3步:在Compose文件中定义服务 Web服务 Redis服务 第4步:用Compose构建和运行你的应用 第5步:编辑Compose文件以添加绑定挂载 第6步:用Compose重新构建并运行应用程序 第7步:更新应用程序 第8步:试验一些其他命令 在这个页面上,你可以建立一个简单的Python网络应用程序,运行在Docker Compose上.该应用使用Flask框架,并在Redis中维护一个点击计数器.虽然样本使用了Py
-
JSP程序运行原理、文档结构及简单输入输出实例分析
本文实例讲述了JSP程序运行原理.文档结构及简单输入输出.分享给大家供大家参考.具体如下: 目标: 掌握Web应用的文档结构: 掌握JSP的运行原理: 掌握JSP的简单输入和输出. 主要内容: 通过一个简单实例介绍Web应用的文档结构和运行原理: 通过一个简单的注册功能介绍基本的输入输出. 实现内容:客户端验证. 1. 文档结构 每个应用都有一个根目录,例如ch2:理论上可以放在任何地方,但是需要配置,简单的做法,直接放在了webapps这个目录下,在这个目录的应用会被自动加载. 在根目录下会有
-
简单介绍Python的Tornado框架中的协程异步实现原理
Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, 今天就简单介绍下 Tornado 协程实现原理, Tornado 的协程是基于 Python 的生成器实现的, 所以首先来回顾下生成器. 生成器 Python 的生成器可以保存执行状态 并在下次调用的时候恢复, 通过在函数体内使用 yield 关键字 来创建一个生成器, 通过内置函数 next 或生
-
Python程序运行原理图文解析
本文研究的主要是Python程序运行原理,具体介绍如下. 编译型语言(C语言为例) 动态型语言 一个程序是如何运行起来的?比如下面的代码 #othermodule.py def add(a, b): return a + b #mainrun.py import othermodule a = ['xiaoke', 1, 'python'] a = 'xiaoke string' def func(): a = -5 b = 257 print(a + b) print(a) if __name
-
简单了解SpringCloud运行原理
这篇文章主要介绍了简单了解SpringCloud运行原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 SpringCloud是基于SpringBoot这一高度自动化的应用开发框架,将各类业界比较知名的.得到过实践反馈的开元服务治理相关的技术框架进行优化整合的框架,是一种开发方式的优化和组合,,是一组框架的统称,基于SpringBoot的starter定制,实现开箱即用的目标,通过简单的声明式注解,就能实现服务的调用.负载均衡.限流.熔断等机制
随机推荐
- go语言map字典删除操作的方法
- 当菜鸟遇上黒客之三:QQ防盗篇
- Linux环境g++编译GDAL动态库操作方法
- JavaScript数据类型之基本类型和引用类型的值
- Javascript技术栈中的四种依赖注入小结
- javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
- iOS如何获取屏幕宽高、设备型号、系统版本信息
- .NET的DateTime函数获取上个月的起始和截止时间的方法
- php mysql数据库操作类(实例讲解)
- mysql5.7.18解压版启动mysql服务
- 使用Python编写爬虫的基本模块及框架使用指南
- MySQL实现类似于connect_by_isleaf的功能MySQL方法或存储过程
- Javascript中的delete操作符详细介绍
- linux服务器下配置多tomcat实现实例
- iASP-让unix支持asp
- PHP实现文件上传与下载实例与总结
- 树莓派+摄像头实现对移动物体的检测
- 初试vue-cli使用HBuilderx打包app的坑
- 基于ssm框架实现layui分页效果
- IE11下处理Promise及Vue的单项数据流问题