Python学习17之类3继承
''''''
'''
继承:在继承原有类功能的基础上,增加新的功能(属性或者方法),形成新的类
被继承的类:父类
新的类:子类 格式:class 子类(父类)
class 子类(父类1,父类2,父类3...)
'''
class Box1():
def __init__(self,l1,w1,h1):
self.l=l1
self.w=w1
self.h=h1
def volume(self):
return self.l*self.w*self.h
class Box2(Box1):
def __init__(self,l1,w1,h1):
super().__init__(l1,w1,h1) #子类的init函数里面的参数为继承父类的参数,通过super函数直接引用(继承)
self.color='blue'
self.material='paper'
self.type='new'
def area(self):
re=self.l*self.w+self.l*self.h+self.w*self.h
return re*2
my_box2=Box2(10,10,10)
print("该立方体体积为%d"%(my_box2.volume()))
print("该立方体的表面积为%d"%(my_box2.area()))
'''
继承的使用方法为 class 子类名(父类名)
重新定义子类的__init__函数,如父类__init__函数有参数,则直接照抄填入括号作为init函数的参数
之后在子类的__init__函数中提供super()函数,实现父类与子类的关联,若父类有参数,需要照抄参数
在子类里可以新增属性,以及定义新的方法
'''
'''
重写方法:
当程序员发现子类继承父类的方法之后,该方法无法满足子类的需求,可以在子类中重写该方法
注意:重写的方法必须与你重写的这个父类方法名称一致
在重写的方法中,可以加入新的参数,直接在括号里添加即可,无需重复添加父类的参数。
具体如下例:求num个相同盒子的体积之和
'''
class Box3(Box1):
def __init__(self,l1,w1,h1):
super().__init__(l1,w1,h1) #子类的init函数里面的参数为继承父类的参数,通过super函数直接引用(继承)
self.color='blue'
self.material='paper'
self.type='new'
def area(self):
re=self.l*self.w+self.l*self.h+self.w*self.h
return re*2
def volume(self,num):
return self.l*self.w*self.h*num
my_box3=Box3(10,10,10)
print("该立方体体积为%d"%(my_box3.volume(5)))
print("该立方体的表面积为%d"%(my_box3.area()))
Python学习17之类3继承的更多相关文章
- python学习日记(面向对象——继承)
什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 class Par ...
- Python学习手册之类和继承
在上一篇文章中,我们介绍了 Python 的函数式编程,现在我们介绍 Python 的类和继承. 查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/100106 ...
- python学习第十六天 --继承进阶篇
这一章节主要讲解面向对象高级编程->继承进阶篇,包括类多继承介绍和继承经典类和新式类属性的查找顺序不同之处. 多继承 上一章节我们讲到继承,子类继承父类,可以拥有父类的属性和方法,也可以进行扩展 ...
- Python学习笔记8-类的继承 、深度优先、广度优先
Python 类声明 语法: class 类名: 类体 例: #--encoding:utf-8-- # class AddressBookEntity: myVersion=0.1 def __in ...
- Python 学习笔记15 类 - 继承
我们在编程的过程中,并非都是要重头开始.比如其他人已经有现成的类,我们可以使用其他找人编写的类.术语称之为: 继承. 当一个类继承例外一个类时,它可以获得这个类的所有属性和方法:原有的类称之为 父类, ...
- Python学习--17 访问数据库
实际开发中,我们会经常用到数据库. Python里对数据库的操作API都很统一. SQLite SQLite是一种嵌入式数据库,它的数据库就是一个文件.由于SQLite本身是C写的,而且体积很小,所以 ...
- Python学习--17 进程和线程
线程是最小的执行单元,而进程由至少一个线程组成.如何调度进程和线程,完全由操作系统决定,程序自己不能决定什么时候执行,执行多长时间. 进程 fork调用 通过fork()系统调用,就可以生成一个子进程 ...
- 《转》Python学习(17)-python函数基础部分
http://www.cnblogs.com/BeginMan/p/3171977.html 一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/arch ...
- Python学习-17.Python中的错误处理(二)
错误是多种多样的,在 except 语句中,可以捕获指定的异常 修改代码如下: import io path = r'' mode = 'w' try: file = open(path,mode) ...
随机推荐
- Python itchat库(1)
一.实验环境 在cmd中输入以下命令,完成微信的API包itchat的安装. pip install itchat 注意这里有个问题,因为电脑里既有Python3.6,又有anaconda.所以一定要 ...
- 【WPF学习】第六十四章 构建基本的用户控件
创建一个简单用户控件是开始自定义控件的好方法.本章主要介绍创建一个基本的颜色拾取器.接下来分析如何将这个控件分解成功能更强大的基于模板的控件. 创建基本的颜色拾取器很容易.然而,创建自定义颜色拾取器仍 ...
- 在ES5实现ES6中的Object.is方法
ES6中对象的扩展里面添加了一个Object.is方法,用于比较两个值是否严格相等.内部计算与 === 行为基本一致.那么我们怎么在不支持这个方法的ES5中实现呢? 首先我们需要搞清楚两点,1:Obj ...
- echarts设置图标图例legend多种形状
legend: { icon: "circle", // 字段控制形状 类型包括 circle,rect,line,roundRect,triangle,diamond ...
- C++动态内存new和delete(超详细)
C++动态内存new和delete C++动态内存是C++灵活.炫酷的一种操作.学好它,能让自己编程逼格上一个level. 在学习动态内存之前,我们先要了解C++是怎么划分内存的: 栈:在函数内部声明 ...
- Mysql数据库错误代码大全
Mysql数据库错误代码大全 出现较多的一些网页代码提示的意思: 1016错误:文件无法打开,使用后台修 ...
- Shell:Day06.笔记
sed命令 Linux文本处理三剑客 之 sed sed stream EDite 作为行编辑器,对文本进行编辑(以行为单位进行编辑) 注意:sed编辑文件,却不改变原文件: sed的工作原理: ...
- C语言一行语句太长的换行处理方法
[toc] 1.C语言中代码的多行书写 对C语言初学者来说,编写的程序的功能很简单,一句代码很短,但是在实际开发中,参数往往很长很多,一句代码可能会很长,需要用多行才能书写. 如果我们在一行代码的行尾 ...
- MTK Android Driver :Audio音频参数
音频参数集成(具体参数由硬件提供) 1.ring/key/mic/fmr/speech/sidetone/media/matv增益: \mediatek\custom\k9\cgen\inc\audi ...
- Linux 用户管理篇(一)
查看当前在线的用户 who 切换不同用户工作界面 ctrl + alt + [F1 - F6] 切换图形界面 ctrl + alt + F7 注消用户 exit ...