python3 重写、重用、重载

和自甴很熟 提交于 2020-02-04 06:36:17

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

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

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

重用的方式:

   继承:

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

                例如: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 = b

obj.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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!