python3 - 关于重用、重写、重载

重用

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

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

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

重用的方式:

   继承:

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

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

猜你喜欢

转载自blog.csdn.net/qq_33961117/article/details/81901018