【Python】面向对象:类与继承简单示例
Python 面向对象
Python 是一门面向对象的设计语言,与此对应的就是面向过程编程与函数式编程
面向对象的一个优点就是更好的增强代码的重用性。
面向过程编程可以简单的理解为:重点在步骤,将一个任务完成所需要的所有步骤罗列出来
面向对象则可以理解为:重点在对象,打个比方的话就是在人,完成一项任务需要哪些人,这些人再去负责做具体的事情,将所有人组合在一起就完成了这个任务。
我们通过封装步骤为方法,封装方法为对象,来执行任务。真实世界中的事物从来都不是单独的,每个事物都有自己的类别,而函数是真实世界的映射,对于同一类的事物,同一类事物具有某些相同的特征,我们无需每次对同一类的事物创建相同的特征,而只需要创建一个大类,在这个大类中将某些共同属性封装在一起,然后通过继承的方式去使用这些属性或者方法,对于一些特殊属性特殊方法,我们只需单独创建它们即可——一切重复性的东西都没有必要存在两份。
下面这个例子定义了一个动物的大类,它具有一些共同属性和方法,以及两个继承它的猫类和狗类,它们具有各自特殊的方法。
1 class Animal(object): # 定义父类animal
2
3 def __init__(self,name,sound): # 初始化属性 name sound
4
5 self.name = name
6 self.sound = sound
7 self.talk() # 一实例化即调用talk()方法
8
9 def talk(self): # 定义父类方法,用于打招呼
10 print("hello,i am %s,%s" % (self.name,self.sound))
11
12 class Dog(Animal): # 继承父类animal
13
14 def jump(self): # 增加子类新方法
15 print("i love jumping!")
16
17 class Cat(Animal): # 继承父类animal
18
19 def sleep(self): # 增加子类新方法
20 print("i love sleeping")
21
22
23 catt = Cat("cat","miao~miao~miao") # 实例化cat类,得到catt对象
24 catt.sleep() # 调用对象方法
25
26 dogg = Dog("dog","wang~wang~wang")
27 dogg.jump()
执行结果:
hello,i am cat,miao~miao~miao
i love sleeping
hello,i am dog,wang~wang~wang
i love jumping!
【Python】面向对象:类与继承简单示例的更多相关文章
- Python面向对象—类的继承
一个子类可以继承父类的所有属性,不管是父类的数据属性还是方法. class Father(object): num = 0 def __init__(self): print "I'm Pa ...
- Python面向对象三要素-继承(Inheritance)
Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三 ...
- Python面向对象中的继承、多态和封装
Python面向对象中的继承.多态和封装 一.面向对象的三大特性 封装:把很多数据封装到⼀个对象中,把固定功能的代码封装到⼀个代码块, 函数,对象, 打包成模块. 这都属于封装思想. 继承:⼦类可以⾃ ...
- python面向对象(类和对象及三大特性)
类和对象是什么 创建类 新式类 和 经典类 面向对象三大特性 继承 封装 多态 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...
- Python()- 面向对象三大特性----继承
继承: 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类(基类或超类),新建的类是所继承的类的(派生类或子类) 人类和狗 有相同的属性, 提取了一个__init__方法,在这 ...
- python面向对象——类
from:http://www.runoob.com/python3/python3-class.html Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在P ...
- 【python】-- 类的继承(新式类/经典类)、多态
继承 之前我们说到了类的公有属性和类的私有属性,其实就是类的封装,现在准备随笔的 是继承,是面向对象的第二大特性. 面向对象编程 (OOP) 语言的一个主要功能就是“继承”.继承是指这样一种能力:它可 ...
- Python面向对象之类的继承(2)
1.除了封装,Python面向对象还有继承这一功能,如下代码,这是简单的继承功能. class Animal: def chi(self): print(self.name+' 吃') def he( ...
- Python——面向对象(类)的基础疑难点
相信用Python写def函数大家都信手拈来了,但Python作为面向对象的编程语言,怎么能浪费呢? 那问题来了.什么是类呢?什么是实例?什么是对象?方法是什么??属性又是什么???继承?封装?多态? ...
随机推荐
- Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源,BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 各种后台管理系统
Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 家庭理财系统 各种后 ...
- java校验导入的模板
/** * 验证导入模板的正确性 InputStream inputStream = file.getInputStream(); */ @SuppressWarnings("depreca ...
- 2.DHCP的基本概念
1.DHCP典型组网 DHCP组网中,包括以下三种角色: DHCP服务器 DHCP服务器负责从地址池中选择IP地址分配至DHCP客户端,还可以为DHCP客户端提供其他网络参数,如默认网关地址.DNS服 ...
- libuv事件循环
目录 1.说明 2.数据类型 2.1.uv_loop_t 2.2.uv_walk_cb 3.API 3.1.uv_loop_init 3.2.uv_loop_configure 3.3.uv_loop ...
- xLua热更新插件
一.xLua插件下载安装 1.从GitHub上搜索并下载插件 2.将文件复制到unity中 3.检查是否有错误 二.在unity中调用lua 1.简单调用 在c#脚本中使用LuaEnv类可以运行lua ...
- codeforces 292E. Copying Data
We often have to copy large volumes of information. Such operation can take up many computer resourc ...
- tesseract-ocr的安装及使用pycharm来运行
1.可以在:http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe 下载一个exe文件,然后直接按照提 ...
- 【2020杭电多校】Total Eclipse 并查集+思维
题目链接:Total Eclipse 题意: t组输入,给你一个由n个点,m条边构成的图,每一个点的权值是ai.你每一次可以选择一批联通的点,然后让他们的权值都减去1.问最后把所有点的权值都变成0需要 ...
- hdu4325 Flowers
Problem Description As is known to all, the blooming time and duration varies between different kind ...
- Educational Codeforces Round 69 (Rated for Div. 2) C. Array Splitting (思维)
题意:给你一个长度为\(n\)的升序序列,将这个序列分成\(k\)段,每一段的值为最大值和最小值的差,求\(k\)段值的最小和. 题解:其实每一段的最大值和最小值的差,其实就是这段元素的差分和,因为是 ...