《零基础入门学习Python》学习过程笔记【38类的继承】

来源:互联网 发布:电力代维软件 编辑:程序博客网 时间:2024/05/21 04:20


注:构造函数__init__(self)不能有返回值

1.如何继承类A?只需在定义类时,在类名后面添加括号,括号内写上A 

即class B(A):


2.子类继承父类的什么?一个子类可以继承它父类的任何属性与方法


注意!!!!!!!!!!!!子类会继承父类的构造函数!!!!!!!!!!!!!!!!!

>>> class A:def __init__(self):self.a=1self.b=1def f(self):print(self.a)print(self.b)>>> class B(A):pass
>>> b.f()   #类B继承了类A的构造函数,否则根本没有a,b,以至于根本无法输出...11




>>> class A:a=1def f(self):print("正在调用A类中的方法f")>>> class B(A):b=1>>> b=B()>>> b.a1>>> b.f()正在调用A类中的方法f

3.如果子类中定义了与父类同名的属性或方法,则父类中属性或方法会被覆盖(和C++相同)

>>> class C:a=1def f(self):print("正在调用父类中的f方法")>>> class D(C):a=2def f(self):print("正在调用子类中的f方法")>>> hh=D()>>> hh.a2>>> hh.f()正在调用子类中的f方法


4.pass?

就是什么也不做,用来占位的...

例如

>>> def a():
这个函数的定义不会随着你按下两次回车结束..它会不断打印出空行

但是这样就OK

>>> def a():pass>>> 




但是写上pass就不会报错


定义类也是同样的情况

>>> class A:


但这样就OK
>>> class A:pass>>> 


5.as?

当引入一个类库时,可以给类库起个别名

>>> import random as r>>> r.randint(1,10)10


6.如何在子类的构造函数中引入父类的构造函数? 

方法一:在子类的构造函数中添加 父类名.__init__(self)

>>> class A:def __init__(self):self.x=1self.y=1>>> class B(A):def __init__(self): #这里的self指的是子类的实例对象A.__init__(self)self.z=1>>> b=B()>>> b.x1>>> b.y1>>> b.z1


方法二:super()方法 

super()方法会自动帮我们找到父类的名字,自动传入self参数

>>> class B(A):def __init__(self):super().__init__()self.z=1>>> b1=B()>>> b1.x1>>> b1.y1>>> b1.z1


7.多重继承?

可以同时继承多个类的属性和方法。例如同时继承B,C,D: class A(B,C,D):

>>> class A:def f1(self):print("我是A")>>> class B:def f2(self):print("我是B")>>> class C:def f3(self):print("我是C")>>> class D(A,B,C):pass>>> d=D()>>> d.f1()我是A>>> d.f2()我是B>>> d.f3()我是C

8.如何去掉父类中的某个函数?同名pass覆盖(不知道明显提出来有什么必要,竟然鱼C说了,我也就记一下)

>>> class A:def f(self):print("A")>>> class B(A):def f(self):pass





阅读全文
0 0
原创粉丝点击