zoukankan      html  css  js  c++  java
  • python学习DAY10(继承中的相关问题)

    #示例
    #组合
    #父类
    class SchoolMember(object):
        def __init__(self,name,age,sex):
            self.name=name
            self.age=age
            self.sex=sex
    class Person(object):
        def __init__(self,job):
            self.job=job
    #子类
    class Teacher(SchoolMember):
        def __init__(self,name,age,sex,salary,course,Person_obj):  #Person_obj是为了下面多继承举例所用
            super(Teacher,self).__init__(name,age,sex)   #新式写法,但多继承采用这种方式的时候虽然可以避免多次执行__init__,但是会带来参数不正确的问题,因为多继承有顺序之分,对参数的顺序也有要求,但是我们没办法确定是哪个父类优先继承,因此参数的位置也就没办法确定下来
           #SchoolMember.__init__(self,name,age,sex)     #__init__只执行一次,如果多继承采用这种方法,会执行多次__init__,所以用super就可以避免此方法多继承带来的问题
            self.salary=salary
            self.course=course
            #如果想采用多继承,以上的两种方法都不能很好的解决问题,可以通过以下方法实现
            #如保留原继承SchoolMember类的情况下再继承Person类
            self.person=Person_obj  #注意子类构造函数的参数------>组合
            
            
  • 相关阅读:
    代理工具介绍
    Cookie 相关
    在JavaScript 使用命名空间
    oracle rank()用法
    sql update 特殊用法
    Repeat 嵌套绑定
    .net 中隐式事务和显示事务的用法
    为站点添加迅雷下载和快车下载
    缺少MSVCR71.DLL解决方式
    关于AppFabric Caching的学习摘录
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/11362400.html
Copyright © 2011-2022 走看看