Python中类的继承如何理解,有哪些要点
Admin 2022-08-09 群英技术资讯 777 次浏览
在实际应用中,我们有时候会遇到“Python中类的继承如何理解,有哪些要点”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“Python中类的继承如何理解,有哪些要点”文章能帮助大家解决问题。继承的主要作用是实现代码的重用。继承使得子类拥有父类的方法和属性。
直接来看一个例子吧。
class animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
class dog(animal):
def dark(self):
print("汪汪叫")
goudan = dog()
goudan.eat()
goudan.drink()
从上面的代码可以看出,在编写dog类的时候,我们并没有重写eat和drink两个方法。我们只需要在dog后面的括号中加上父类的名字即可。当子类继承了父类,子类就可以直接使用父类中的方法了。在本例中,goudan可以直接使用animal类中的eat和drink两个方法。
而且一个神奇的事情是,继承是具有传递性的。子类拥有父类的方法和属性,同时也具有父类的父类所具有的属性。
有时候,父类中的方法并不能完成满足子类的需求。这时候我们就需要方法重写了。子类方法重写一般有两种情况:
一种简单的方法是直接重写相应的方法。下面这个例子就是重写了drink这个方法。当使用goudan调用drink这个方法方法时,结果并不是喝而是拿舌头喝水。
class animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
class dog(animal):
def drink(self):
print("拿舌头喝水")
def dark(self):
print("汪汪叫")
goudan = dog()
goudan.eat()
goudan.drink()
当我们的需求不是简单的覆盖父类中的方法,而是在父类方法的基础上对方法进行扩展。具体的做法是:
我们来看一个例子,此时goudan在调用drink方法的时候,会输出喝和拿舌头喝水两个输出。
class animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
class dog(animal):
def drink(self):
# 1. 根据子类的需求编写特定的代码
print("拿舌头喝水")
# 2. 使用super继承父类中的fangfa
super().drink
def dark(self):
print("汪汪叫")
goudan = dog()
goudan.eat()
goudan.drink()
对于Python而言,一个子类可以有多个父类。多继承的基本语法是比较简单的。话不多说,直接看一个例子
class A():
def test(self):
print("test")
class B():
def demo(self):
print("demo")
class C(A,B):
pass
c = C()
c.test()
c.demo()
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python使用re模块实现okenizer,我们这里讲解用正则表达式构建简单的表达式分词器(tokenizer),它能够将表达式字符串从左到右解析为标记(tokens)流,需要的朋友可以参考下
这篇文章介绍了Python常用Web框架Django、Flask与Tornado,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
Python基础-PEP8 提供了 Python 代码的编写约定. 本节知识点旨在提高代码的可读性, 并使其在各种 Python 代码中编写风格保持一致.
大家好,本篇文章主要讲的是Python中的随机函数random详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
Python index()方法检测字符串中是否包含子字符串str ,如果指定beg(开始)和end(结束)范围,则检查是否包含在指定范围内,该方法与python find()方法一样,只不过如果str不在string中会报一个异常。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008