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】面向对象:类与继承简单示例的更多相关文章

  1. Python面向对象—类的继承

    一个子类可以继承父类的所有属性,不管是父类的数据属性还是方法. class Father(object): num = 0 def __init__(self): print "I'm Pa ...

  2. Python面向对象三要素-继承(Inheritance)

    Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三 ...

  3. Python面向对象中的继承、多态和封装

    Python面向对象中的继承.多态和封装 一.面向对象的三大特性 封装:把很多数据封装到⼀个对象中,把固定功能的代码封装到⼀个代码块, 函数,对象, 打包成模块. 这都属于封装思想. 继承:⼦类可以⾃ ...

  4. python面向对象(类和对象及三大特性)

    类和对象是什么 创建类 新式类 和 经典类 面向对象三大特性 继承 封装 多态   面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  5. Python()- 面向对象三大特性----继承

    继承: 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类(基类或超类),新建的类是所继承的类的(派生类或子类) 人类和狗 有相同的属性, 提取了一个__init__方法,在这 ...

  6. python面向对象——类

    from:http://www.runoob.com/python3/python3-class.html Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在P ...

  7. 【python】-- 类的继承(新式类/经典类)、多态

    继承 之前我们说到了类的公有属性和类的私有属性,其实就是类的封装,现在准备随笔的 是继承,是面向对象的第二大特性. 面向对象编程 (OOP) 语言的一个主要功能就是“继承”.继承是指这样一种能力:它可 ...

  8. Python面向对象之类的继承(2)

    1.除了封装,Python面向对象还有继承这一功能,如下代码,这是简单的继承功能. class Animal: def chi(self): print(self.name+' 吃') def he( ...

  9. Python——面向对象(类)的基础疑难点

    相信用Python写def函数大家都信手拈来了,但Python作为面向对象的编程语言,怎么能浪费呢? 那问题来了.什么是类呢?什么是实例?什么是对象?方法是什么??属性又是什么???继承?封装?多态? ...

随机推荐

  1. (七)整合 Redis集群 ,实现消息队列场景

    整合 Redis集群 ,实现消息队列场景 1.Redis集群简介 1.1 RedisCluster概念 2.SpringBoot整合Redis集群 2.1 核心依赖 2.2 核心配置 2.3 参数渲染 ...

  2. Web信息收集-目标扫描-OpenVAS

    Web信息收集-目标扫描-OpenVAS 一.OpenVAS简述 二.部署OpenVAS 2.1 升级Kali Linux 2.2 安装OpenVAS 2.3 修改admin账户密码 2.4 修改默认 ...

  3. JTS Geometry

    JTS Geometry关系判断和分析 JTS Geometry关系判断和分析 1.关系判断 1.1实例 2.关系分析 2.1实例 JTS(Geometry) JTS Geometry关系判断和分析 ...

  4. java中的IO处理和使用,API详细介绍(一)

    写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面.照旧,文章依旧以例子为主,因为 ...

  5. 给jekyll博客添加天气插件

    layout: post title: 给博客添加天气插件 date: 2020-04-26 author: Dapenson header-img: img/post-bg-debug.png ca ...

  6. Pytest(12)pytest缓存

    前言 pytest 运行完用例之后会生成一个 .pytest_cache 的缓存文件夹,用于记录用例的ids和上一次失败的用例. 方便我们在运行用例的时候加上--lf 和 --ff 参数,快速运行上一 ...

  7. Codeforces Round #645 (Div. 2) C. Celex Update

    题目链接:C.Celex Update 题意: 给你如图所示的图形,问从(x1,y1)−>(x2,y2)路径上的不同的元素和的数量是多少. 题解: 从(1,1)到(3,3) 元素和的1−2−4− ...

  8. Educational Codeforces Round 97 (Rated for Div. 2) D. Minimal Height Tree (贪心)

    题意:有一个从根节点\(BFS\)得来的序列(每次\(bfs\)子节点的时候保证是升序放入队列的),现在让你还原树(没必要和之前相同),问能构造出的最小的树的深度. 题解:不看根节点,我们从第二个位置 ...

  9. 加密算法——RSA算法(c++简单实现)

    RSA算法原理转自:https://www.cnblogs.com/idreamo/p/9411265.html C++代码实现部分为本文新加 RSA算法简介 RSA是最流行的非对称加密算法之一.也被 ...

  10. 牛客编程巅峰赛S1第5场 - 青铜&白银 C.排队 (优先队列,归并排序)

    题意:有\(m\)个窗口,\(n\)个人排队,每个人都有各自的办理时间,只有办理完成窗口才能空出来,后面的人开始办理,求有多少人比后面的人开始办理的早但完成的晚. 题解:我们可以用优先队列来模拟办理, ...