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

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

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

重用的方式:

继承:

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

例如: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. java 方法引用无效_InvalidProgramException:调用方法时无效的IL代码
  2. python中获取python版本号的方法
  3. R7-2 试试多线程 (10 分)
  4. Dominant Indices(CF 1009 F)
  5. insert into select 主键自增_springboot2结合mybatis拦截器实现主键自动生成
  6. Vue使用Element-ui按需引入大坑
  7. windows下使用word2vec训练维基百科中文语料全攻略!(三
  8. Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
  9. mysql 5.7 slow_mysql 5.7 解决 set global slow_query_log=on;报错
  10. Telnet 窗口看不见字符
  11. 照度计与亮度计的区别及如何挑选?
  12. Day 14 python 之 字符串练习
  13. python数据分析之(1)数据输入和输出
  14. 测试用例设计方法有哪些?
  15. 《创业维艰》详细的思维导图
  16. Matlab中linspace函数的用法
  17. 浙江大学-研究生机器学习课程-课堂笔记
  18. 毕业设计网站项目的开发流程
  19. Java开发中各类名词解释大全
  20. hashmap扩容线程安全问题_HashMap是非线程安全,为什么ConcurrentHashMap能做到线程安全?...

热门文章

  1. 模拟--滑动窗口最大值
  2. canvas里图像拖拽操作
  3. 【记录】AutoMapper Project To OrderBy Skip Take 正确写法
  4. 研究validation插件到现在的感受
  5. 选择、冒泡、插入、快速排序
  6. SqlHelper和数据访问层
  7. [翻译]XNA外文博客文章精选之sixteen(下)
  8. 2018.10.24-day3 python总结
  9. python学习第六天运算符总结大全
  10. 如何使用shell收集linux系统状态,并把结果发给远端服务器