继承,作业

 

张金易作业

1.什么是继承?继承的目的?
继承是一种新建类的方式,新建的类称之为子类或派生类,继承的父类称之为基类或超类。
减少代码冗余
2.python与期他语言的继承区别是什么?
可以继承多个父类
3.如何寻找继承关系?
抽取对象之间相同的部分,总结出类
抽出类中间相同的部分,总结出父类
4.继承背景下对象属性的查找顺序是什么?
- 画图
   ![python继承](C:\Users\Administrator\Desktop\python继承.png)

5.什么是派生?如何重用父类的属性并派生?两种方式
指的是子类继承父类的属性与方法,并且派生出自己独有的属性与方法。
   若子类中的方法名与父类的相同,优先用子类的。
   第一种引用父类__init__(),然后添加新的参数
   第二种用super
   
6.什么是新式类与经典类?
凡是继承object的类或子孙类都是新式类。
在python2中,凡是没有继承object的类,都是经典类


7.钻石继承下,经典类与新式类属性的查找顺序是什么?
- 画图
- 广度
  - 深度

8.下面这段代码的输出结果将是什么?请解释。
class Parent(object):
  x = 1
class Child1(Parent):
  pass
class Child2(Parent):
  pass
print(Parent.x, Child1.x, Child2.x)
       1 1 1
       继承父类
Child1.x = 2
print(Parent.x, Child1.x, Child2.x)
       1 2 ,1
      增加了一个的值
Parent.x = 3
print(Parent.x, Child1.x, Child2.x)
       3 2 3
       child2依然继承父类

9.下述代码新式类与新式类的查找顺序是什么?
class A(object):
   def test(self):
       print('from A')
class B(A):
   def test(self):
       print('from B')
class C(A):
   def test(self):
       print('from C')
class D(B):
   def test(self):
       print('from D')
class E(C):
   def test(self):
       print('from E')
class F(D, E):
   def test(self):
       print('from F')
   pass

# python3中校验:
XX --> XX --> ...
   D-->B-->E-->C-->A
   


# python2中校验:
D-->B-->A-->E-->C
   

 

posted @ 2019-11-26 19:20  迎着阳光  阅读(286)  评论(0编辑  收藏  举报