重用
重用是用于在对象的概念中,实现代码的重用性

在继承角度,在子类继承父类之后,重新使用父类属性方法即是代码的重用

在组合角度,在一个类中以另外一个类的对象作为数据属性,提高代码的重用性

重用的方式:

继承:

方式一:指名道姓的应用某一个类中的函数(无关继承,访问函数不存在自动传值)

例如:CollegePeople.__init__(self, name, age, sex)

方式二:使用内置方法super(),返回特殊对象访问属性(严格依赖mro列表,存在自动传值)

例如:super().__init__( name, age, sex)

组合:通过为某一个对象添加属性的方式,间接将两个类进行关联,减少类与类代码冗余

class Foo:
xxx = 222
class Bar:
yyy = 111
obj = Foo()
b = Bar()obj.attr = Bar()
obj.a = bobj.xxxx #调用Foo内属性
obj.attr.yyyy #调用Bar内属性

重写
重写用于继承概念下,子类继承父类需要同名的不同函数,即可修改重写同名方法。

例如:

class Parent: # 定义父类
def myMethod(self):
print '调用父类方法'class Child(Parent): # 定义子类
def myMethod(self):
print '调用子类方法'c = Child() # 子类实例
c.myMethod() # 子类调用重写方法

重载
重载是,函数或者方法有相同的名称,但是参数列表不相同(类型不同,数量不同,位置不同)的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。

python的实现过程中可能存在重载,但是在Python的呈现使用中不存在重载的概念。

原因:python 可以接受任何类型的参数,而对那些缺少的参数设定为缺省参数即可解决问题。即,python中参数传递时候的*arg和**kwargs

转载于:https://www.cnblogs.com/ZKPython/p/10735883.html

python3 重写、重用、重载相关推荐

  1. 9.多态(P a1=new B();)重写与重载、instanceof关键字

    1.多态 P a1=new B(); 根据传入子类对象,自主选择重写的方法,没有重写则用父类P.但这并不意味着这个对象是子类B对象,相反它自转为父类PB对象,不能使用子类B的特有方法,属性. 从生活多 ...

  2. C# 继承实现父类方法、重写、重载

    继承是派生类(子类)去实现(重写<override>.重构<new>)基类(父类)的方法或属性.从而获取在派生类中要实现的功能. 子类调用父类构造方法,在父类中有个实现姓名和年 ...

  3. 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载

    <?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载*/ //构造方法:当实例化对象时,自动运行的方法 /*class channel{func ...

  4. 【Java基础】重写与重载

    为什么80%的码农都做不了架构师?>>>    重写(Override): 定义:在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动地继承父类 ...

  5. 重写与重载的区别 以及 重写中super的使用

    重写是父类方法与子类方法有共同的参数名参数列表,返回类型必须父类的方法一致.子类的访问修饰符一定要大于等于父类的访问修饰符.如果在子类中还需要用到父类的方法,用super.method() 然后继续写 ...

  6. Java的重写和重载机制

    Java的重写和重载机制 张磊 zhangleispirit@gmail.com Java的重写和重载是两种在Java中经常提到的两组概念,它们在各个方面都有着很大的不同,本文主要在此做一个归纳总结. ...

  7. float 与 double、隐式类型转换、switch、重写与重载、Java 与 C++ 的区别、JRE or JDK

    1.float 与 double 1.1 字面量属于 double 类型,不能直接将 1.1 直接赋值给 float 变量,因为这是向下转型. // float f = 1.1; Java 不能隐式执 ...

  8. Java继承、重写与重载 笔记

    1. Java继承 继承要符合的关系是:is-a,父类更通用,子类更具体. 1.1 继承的特性 子类拥有父类非private的属性,方法. 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展. 子 ...

  9. Java基础之重写与重载深入解析

    Java详解重写与重载 首语 总结java重写与重载的时候,在菜鸟教程看到很详细的解释,觉得很好,就搬过来了,侵删. url:https://www.runoob.com/java/java-over ...

  10. Java重载和重写6_深入理解Java中的重写和重载

    深入理解Java中的重写和重载 重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念.但是对于新手来说也比较容易混淆.本文通过两个简单的例子说明了他们之间的区别. ...

最新文章

  1. 2020 JVM生态报告
  2. when click one item in table Select at least one column to perform the search
  3. 将一个数组a的行和列的元素互换,存到另一个二维数组b中
  4. python新手小案例_10个常见的Python小案例,推荐新手入门学习
  5. java开发的主流_盘点2019年Java开发中7项主流、热门的IT技术!
  6. 初中 计算机文化知识,计算机文化知识(Computer literacy).doc
  7. 禅道PMS兼容redmine用户认证接口
  8. ping的时候怎么暂停_dos命令pause教程,?暂停bat批处理脚本程序,?请按任意键继续...
  9. 8大常用数据库管理系统简介
  10. 关于金格电子签章的使用问题处理
  11. 【将多个Excel合并成一个Excel】
  12. ws协议绑定服务器域名,Websocket直接域名连接
  13. 数据分析基础:数据可视化+数据分析报告(Python实现)
  14. Data Binding学习(一)
  15. MySQL 安装失败 Failed to find valid data directory
  16. 这份关于高三的秘籍,一定要知道!
  17. Python2.7爬虫——爬取微信公众号文章
  18. 蜗牛—cocos2dx之初识
  19. 1095 Cars on Campus
  20. 软件测试究竟发挥什么作用?

热门文章

  1. centos7.4 安装配置rabbitmq-server 实操记录
  2. servlet中通过getWriter()获取out返回给浏览器出现中文乱码问题
  3. 踩过的坑 vertical-alignline-height
  4. 如何用一款小工具大大加速MySQL SQL语句优化(附源码)
  5. 5个提高效率的编程工作环境
  6. drupal.behavior 和 document.ready 没有直接的关系
  7. 10.TreeSet、比较器
  8. 阅读之大量数据访问机器的架构优化
  9. Hadoop 开源调度系统zeus
  10. 优化mysql数据库性能的十个参数