Python继承,看这篇就够了
前言
说到面向对象,大家都不陌生。在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()
objA = A()
objB = B()
obj = C()
obj.test_c()
例子中,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()
方法即可。
继承的注意事项及常见运用
注意事项
-
子类如果重写了__init__方法,子类就不会自动继承父类__init__中的属性。如果要继承父类的属性,需要用到super方法,我们在B类的__init__方法中加上:
若继承父类的所有属性就直接用super(子类,self).__init__(参数0,参数1...) 父类名称.__init__(self,参数0,参数1...)
super().__init__()
。 -
在调用基类方法时,需加上基类的类名前缀,并带上
self
参数变量。但在类中调用普通函数不需要带上self
函数。
常见运用
继承在python中运用非常广,比如各种模块源码就使用到了继承,我们写代码时如配置代码、log日志打印都用到了继承。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
相关文章
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串
在 Python Pandas 中使用 str.split 将字符串拆分为两个列表列
发布时间:2024/04/24 浏览次数:1124 分类:Python
-
本教程介绍如何使用 pandas str.split() 函数将字符串拆分为两个列表列。
在 Pandas 中将 Timedelta 转换为 Int
发布时间:2024/04/23 浏览次数:231 分类:Python
-
可以使用 Pandas 中的 dt 属性将 timedelta 转换为整数。
Python 中的 Pandas 插入方法
发布时间:2024/04/23 浏览次数:112 分类:Python
-
本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。
使用 Python 将 Pandas DataFrame 保存为 HTML
发布时间:2024/04/21 浏览次数:106 分类:Python
-
本教程演示如何将 Pandas DataFrame 转换为 Python 中的 HTML 表格。
如何将 Python 字典转换为 Pandas DataFrame
发布时间:2024/04/20 浏览次数:73 分类:Python
-
本教程演示如何将 python 字典转换为 Pandas DataFrame,例如使用 Pandas DataFrame 构造函数或 from_dict 方法。
如何在 Pandas 中将 DataFrame 列转换为日期时间
发布时间:2024/04/20 浏览次数:101 分类:Python
-
本文介绍如何将 Pandas DataFrame 列转换为 Python 日期时间。