零基础小白学Python之多继承习题演练
1.1 自定义人类(Person)
需求:
- 包括属性:姓名(name)、性别(sex)、年龄(age)、国籍(country)
- 包括方法:
- 吃饭(eat)
- xx要吃饭…
- 睡觉(sleep)
- xx要睡觉…
- 工作(work)
- xx要工作…
- 吃饭(eat)
- 打印对象,能打印出对象身上的所有属性值
在Python中,继承体现类与类之间的关联关系,如果一个类A里面的属性和方法被一个类B继承,那么类A就是基类,也叫作父类,类B就是派生类,也叫子类
class Person(object):def__init__(self,name,sex,age,country)self.name = nameself.sex =sexself.age = ageself.country = countrydef eat(self):print("%s要吃饭"% self.name)def sleep(self):print("%s要睡觉"% self.name)def work(self):print("%s要睡觉"% self.name)def __str__(self):return "名字:%s 性别:%s 年龄:%s,国籍:%s"%(self.name,self.sex,self.age,self.country)
p=Perseon("小王","男",19,"中国")
print(p)
1.2 自定义学生类(Student)
需求:
- 包括属性:姓名(name)、性别(sex)、年龄(age)、国籍(country) 、学校(school_name)、学号(no)
- 包括方法:
- 吃饭(eat)
- xx要吃饭…
- 睡觉(sleep)
- xx要睡觉…
- 工作(work)
- xx要学习…
- 吃饭(eat)
- 打印对象,能打印出对象身上的所有属性值
Person作为父类,Student是它的子类,继承了所有Person的属性和方法
子类继承了多个父类,如果父类类名修改了,那么子类也要涉及多次修改。而且需要重复写多次调用,显得代码臃肿。
使用super() 可以逐一调用所有的父类方法,并且只执行一次。
Class Student(Person):def __init__(self,name,sex,age,country,school_name,no):super().__init__(name,sex,age,country)self.school_name = school_nameself.no = nodef work(slef):print("%s要学习"%self.name)def __str__(self):ret = super()__str__():return"%s 学校:%s 学号:%s"%(ret,self.school.name,self.no)
s = Student("小王", "男", 20, "中国", "社会大学", "001")
s.work()
print(s)
注意:如果继承了多个父类,且父类都有同名方法,则默认只执行第一个父类的(同名方法只执行一次,目前super()不支持执行多个父类的同名方法)
super() 在Python2.3之后才有的机制,用于通常单继承的多层继承。
1.3 自定义工人类(Worker)
需求:
- 包括属性:姓名(name)、性别(sex)、年龄(age)、国籍(country) 、单位(company)、工龄(work_age)
- 包括方法:
- 吃饭(eat)
- xx要吃饭…
- 睡觉(sleep)
- xx要睡觉…
- 工作(work)
- xx要炼钢…
- 吃饭(eat)
- 打印对象,能打印出对象身上的所有属性值
“”"
与1.2需求相似,注意继承性
class Woker(Person):def __init__(self, name, sex, age, country, company, work_age):spuer(Woker,self).__init__(name,sex,age,country)self.company = companyself.work_age = work_agedef work(self):print("%s要炼钢"% self.name)def __str__(self):ret = super().__str__(ret,company,work_age)return"%s 公司:%s 工龄:%s"%(ret,self.company,work_age)
w = Worker("老李", "男", "38", "中国", "颜艺公司", 10)
w.work()
print(w)
零基础小白学Python之多继承习题演练相关推荐
- 零基础小白学python之【贝壳房价爬取】(一)
学习用python写爬虫有几天了,下面写一个小爬虫验证下学习成果吧. 本文适合小白食用,各位大佬您就图个乐~ Tip:本文仅供学习与交流,切勿用于非法用途!!! 一.网页分析 爬取贝壳网石家庄二手房信 ...
- 零基础可以学python吗-零基础适合学Python吗?小白能否学会Python?
原标题:零基础适合学Python吗?小白能否学会Python? 我没学过编程,能否学会Python? 肯定的回答您:完全能学会 其实,很多个程序员都是从不会到会,每种知识也是从基础到复杂,大家都是从零 ...
- 零基础适合学python吗-零基础适合学Python吗?小白能否学会Python?
原标题:零基础适合学Python吗?小白能否学会Python? 我没学过编程,能否学会Python? 肯定的回答您:完全能学会 其实,很多个程序员都是从不会到会,每种知识也是从基础到复杂,大家都是从零 ...
- 0基础小白学python好学吗-零基础适合学Python吗?小白能否学会Python?
原标题:零基础适合学Python吗?小白能否学会Python? 我没学过编程,能否学会Python? 肯定的回答您:完全能学会 其实,很多个程序员都是从不会到会,每种知识也是从基础到复杂,大家都是从零 ...
- 触动精灵 python,[触动精灵]零基础小白学触动5-8
零基础小白学触动 - 05 - 触动常用函数 点击 滑动 原理 其实都可以分解成按下=> 等待一定时间或者移动动作=> 松开 ?如何实现精确滑动 https://zimaoxy.com ...
- 零基础可以学python吗-Python编程语言好学吗?零基础转行能学Python吗?
Python编程语言好学吗?零基础转行能学Python吗?人工智能时代的来临催生了很多新兴行业,Python是最具代表性也是比较热门的技术之一.有人看好Python入门简单.功能强大的特性,选择转行从 ...
- python语言自学-零基础小白学习Python编程语言的正确姿势(纯干货)
原标题:零基础小白学习Python编程语言的正确姿势(纯干货) 敢问有哪种编程语言集简洁.优雅.简单.全能于一身?Python绝对算的上是一个.举个例子,比如完成同一个任务,C语言需要写1000行代码 ...
- 零基础轻松学python pdf 小码哥_零基础轻松学Python
零基础轻松学Python电子书 Python之父Guido van Rossum力荐的Python门书.本书以通俗易懂的语言.好玩有趣的案例让读者轻轻松松.循序渐地从零始掌握Python 3 编程.本 ...
- 零基础可以学python么
零基础自然是可以学习python的,Python具有简单.易学.免费.开源.可移植.可扩展.面向对象等优点,斩获无数程序员的喜爱,也有了"人生苦短,我选Python"的名言. 近几 ...
最新文章
- DO YOU WANNA BUILD A SNOW MAN ?
- 深度优先搜索(DFS)相关习题
- 【MySQL】MySQL drop,truncate,delete 区别
- Java 多态的特性和概念
- php sockets有什么用,PHP中Sockets与流有什么关系啊!!!!!
- mat格式数据集转换为arff与txt格式
- python turtle绘图
- java海康摄像头添加人脸_java及opencv实现调用本地摄像头、网络摄像头完成人脸检测、人脸收集、人脸识别、性别识别...
- 项目管理实践——一页纸项目管理
- 关于下载安装pycharm专业版的步骤
- 南昌大学计算机学院夏令营,南昌大学关于举办2021年优秀大学生暑期夏令营活动的通知...
- 美团(2) - 实战准备
- python 批量增加文件前缀_linux中批量添加文件前缀的操作方法
- [c++]c++程序设计-Y.Daniel.Liang 笔记
- 用python 读取excel 指定列
- gnuplot 等高线脚本
- WIFI协议及ESP8266 AT指令
- 学习笔记 | 数据结构和算法 知识点思维导图
- Python实例8:利用条件结构计算个人所得税
- 美国C1/D签证如何申请?