Python类的继承

news/2024/10/22 3:04:24/

 

一、类的继承

1、什么是继承

通过继承基类来得到基类的功能

所以我们把被继承的类称作父类或基类,继承者被称作子类

代码的重用

2、父(基)类与子类

子类拥有父类的所有属性和方法

父类不具备子类自有的属性和方法

3、继承的用法

定义子类时,将父类传入子类参数内

子类实例化可以调用自己与父类的函数与变量

父类无法调用子类的函数与变量

class Parent(object):def __init__(self, name, sex):self.name = nameself.sex = sexdef talk(self):return f'{self.name} is talking'def is_sex(self):if self.sex == 'boy':return f'{self.name} is a boy'else:return f'{self.name} is a girl'class ChildOne(Parent):def play_football(self):return f'{self.name} is playing football'class ChildTwo(Parent):def play_pingpang(self):return f'{self.name} is playing pingpang'c_one = ChildOne(name='xiaomu', sex='boy')
result = c_one.play_football()
print(result)result = c_one.talk()
print(result)c_two = ChildTwo(name='xiaoyun', sex='girl')
result = c_two.play_pingpang()
print(result)result = c_two.talk()
print(result)p = Parent(name='xiaomubaba', sex='boy')
result = p.talk()
print(result)result = p.is_sex()
print(result)

4、super函数

super函数的作用

Python子类继承父类的方法而使用的关键字,当子类继承父类后,就可以使用父类的方法

super函数的用法

class Parent(object):def __init__(self, p):print('hello i am parent %s' %p)class Child(Parent):def __init__(self, c):super().__init__('Parent')print('hello i am child %s' %c)if __name__ == '__main__':c = Child(c='Child')

5、类的多重继承

什么是多重继承

可以继承多个基(父)类

多重继承的方法

class Child(Parent1, Parent2, Parent3...)

将被继承的类放入子类的参数位中,用逗号隔开

从左向右依次继承

# coding: utf-8# 2个父类
class Tool(object):def work(self):return 'tool work'def car(self):return 'car will run'class Food(object):def work(self):return 'food work'def cake(self):return 'i like cake'# 继承父类的子类
class Person(Food, Tool):passif __name__ == '__main__':p = Person()p_car = p.car()p_cake = p.cake()print(p_car)print(p_cake)p_work = p.work()print(p_work)print(Person.__mro__)


http://www.ppmy.cn/news/49158.html

相关文章

小六壬学习笔记

小六壬学习笔记 简介前置知识:十二地支和十二时辰适用范围起课:月令日时卦象 疑问:遇到闰月怎么办?禁忌数字起课法手机计算器取余数 简单解卦 简介 马前课,又名:小六壬。 小六壬历史渊源:https://m.sohu.c…

【CSS】课程网站 Banner 制作 ② ( Banner 栏版心盒子测量 | Banner 版心盒子模型左侧导航栏代码示例 )

文章目录 一、Banner 栏版心盒子测量1、测量版心元素尺寸2、课程表测量 二、Banner 版心盒子模型左侧导航栏代码示例1、HTML 标签结构2、CSS 样式3、展示效果 一、Banner 栏版心盒子测量 1、测量版心元素尺寸 拉四条辅助线 , 将版心包起来 , 可以测量 Banner 条版心的尺寸为 12…

Flink CDC 在易车的应用实践

摘要:本文整理自易车数据平台负责人王林红,在 Flink Forward Asia 2022 数据集成专场的分享。本篇内容主要分为四个部分: Flink 应用场景DTS 平台建设Flink CDC Hudi 应用实践未来规划 点击查看直播回放和演讲 PPT 一、Flink 应用场景 Flink…

【Python合集】程序员系列代码之“这么好的天气应该去放风筝,而不是在搬砖,好想去放风筝哦~”(附完整代码)

导语 ☽ ☽ ☽ ☽ ☽ ☽ 文案丨April 19th, 2023 ☆ ☽ ☽☽ ☽☽ ☽ 江滩边摇摇晃晃的风筝 是春日越冬归来的信号 风筝蹦蹦跳跳 看盎然春意四处热闹阿姨路过菜摊子 带把香椿回家炒蛋细子摘桑 被酸得直口水嗲嗲裹着棉袄 托起霸缸到处晒大阳妹子没管倒春寒 提前换上短…

RabbitMQ-高级篇

服务异步通信-高级篇 消息队列在使用过程中,面临着很多实际问题需要思考: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D6S1iAs7-1681919354777)(assets/image-20210718155003157.png)] 1.消息可靠性 消息从发送&#x…

文明的标志:书写系统、修建城市、使用金属器

文章目录 引言I 预备知识1.1 文明”和“文化”概念1.2 文明的标志1.3 应对水患II 定居开启了人类文明2.1 书写系统2.2 陶器2.3 家畜引言 一切和开启文明相关的技术都是围绕着两根主线展开: 多获取能量,以便于生存,信息能够管理起酋邦,总结、记录并传授经验。I 预备知识 1.…

Java函数式编程

java.util.function包 在使用lambda表达式的时候,经常需要定义一些接口用来辅助编码,这样就会使得本应轻量级的lambda表达式又变得重量级。那是否存在解决方案呢?其实Java 8本身已经提供了一些常见的函数式接口,就在java.util.fu…

机器学习算法 随机森林

文章目录 一、概述1.1 集成学习1.2 决策树1.3 随机森林 二、Sklearn中的随机森林2.1 分类树API2.2 参数 2.2 回归树API2.2.1 重要参数 2.3 随机森林调参 三、总结 一、概述 1.1 集成学习 多个模型集成成为的模型叫做集成评估器(ensemble estimator)&am…