说到面向对象,大家都不陌生。在python中,一切皆对象,我们使用类来表示具有相同属性和方法的对象的集合。而继承则是一种创建新类的方式,这个新类可以使用被继承类的属性。今天就来说说python中的继承。
继承用于类的创建上,新创建的叫子类,而被继承的叫做父类。子类可以使用父类属性,继承是描述类与类之间的关系。
为什么要用继承呢?因为继承可以减少代码的冗余以及提高代码的重用性。我们在工作中,用到继承的地方很多。
python里继承总共有单继承、多继承和多层继承。
单继承指的是子类只继承一个父类。示例:
class A():def __init__(self):self.a = 'a'def test_a(self):print("aaaa")class B(A):def __init__(self):self.b = 'b'def test_b(self):self.test_a()print("bbbb")obj = B()
obj.test_b()复制代码
例子中,B类只继承A类的方法。在B类中用self.test_a()即可调用A类的test_a()方法。
多继承指的是子类继承了多个父类。来个示例:
class A():def __init__(self):self.a = 'a'def test_a(self):print("aaaa")class B():def __init__(self):self.b = 'b'def test_b(self):print("bbbb")class C(A, B):def __init__(self):self.c = 'c'def test_c(self):self.test_a()self.test_b()
复制代码
例子中,C类就分别继承了A类和B类的方法。 多层继承就是指子类继承的父类也有继承别的类,这里就不举例了。
在某些场景下,子类继承了父类的属性和方法,但子类有同名的方法,这时候就需要重写子类的方法了。
class A():def __init__(self):self.a = 'a'def test(self):print("aaaa")class B(A):def __init__(self):self.b = 'b'super().__init__()def test(self):print("bbbb")
复制代码
例子中B类继承A类的属性和test()方法,但B也有test方法,那么只需要在B类中重新定义个test()方法即可。
super(子类,self).__init__(参数0,参数1...)
父类名称.__init__(self,参数0,参数1...)
复制代码
若继承父类的所有属性就直接用super().__init__()。
继承在python中运用非常广,比如各种模块源码就使用到了继承,我们写代码时如配置代码、log日志打印都用到了继承。
上一篇:2024全球10大最佳留学国家排行榜发布!英美无缘第一! 2022年全球最佳留学国top10 2023年全球最佳留学国家榜单top20
下一篇:曼联4-2逆转重返前六!后防送礼滕哈格发出警告,两支柱力挽狂澜 曼联2比1战胜卢顿滕哈赫 曼联0-3惨败纽卡高喊滕哈赫下课