洗礼灵魂,修炼python(31)--面向对象编程(1)—面向对象,对象,类的了解
面向对象
1.什么是面向对象

(图片来自网络)
哈哈,当然不是图中的意思。
1).面向对象(Object Oriented,OO)是软件开发方法。利用各大搜索引擎得到的解释都太官方,完全看不懂啥意思对吧?那么我的理解是这样:
在上一篇博文说到了装饰器的含义,给一个现有的程序添加新的功能,同时又不改变其结构,作为现有对象的一个包装修饰。那么其实被用于修饰的程序就是我们这篇文章主旨——面向对象里的对象;不管原程序内部在运行什么操作,装饰器只是对其修饰就行,这个理念就是面向对象里的封装;不改变其结构继续拥有原程序的功能就是面向对象的继承;添加新的功能最终组成一个功能丰富的程序,当新的程序调用时因为多功能对不同对象的不同行动就是面向对象里的多态(可能有些逻辑和概念上的小牵强,大体是没错的)
这里补一句,因为在这方面类的运用在企业里确实用的很多,本来直接就用类也很方便,所以装饰器基本很少用,但也不是说装饰器一无是处,各有特点。装饰器和面向对象都是面试必问问题
2).面向对象三要素:
封装:信息隐蔽技术,对一个定义好的函数使用。
- 隐藏实现方案的细节
- 将代码和处理的数据绑定一起的一种编程机制,用于保证程序和数据不受外部干扰且不会被误用
继承:子类继承父类特性
- 一个对象获得另一个对象属性的过程,用于实现按层分类的概念
- 一个深度继承的子类(派生类)继承了类层次中它的每个祖先(超类,基类,父类)的所有属性
- 搜索顺序由下而上,由左至右
多态:不同对象对同一方法响应不同行动
- 允许一个接口被多个通用的类动作使用的特性,具体使用那个动作与应用场合相关
- 用于为一组相关的动作设计一个通用的接口,以降低程序复杂性
3).再看一个图,这次是认真的

(图片来自网络)
然后如果你没懂,不要紧,学完面向对象编程这一章你自然而然就懂了。还有我想说的是,面向对象本也不是一两句话就能解释清楚的。
2.面向对象有三个方向:
OOA:面向对象分析
OOB:面向对象设计
OOP:面向对象编程
对象(object)
1.什么是对象?
在python中,一切皆对象,就像在linux里一切皆文件一样。也就是说只要是python里的东西,全部都是对象。对象,就是抽象化的数据本身
2.对象的三部分:
- 身份
- 类型
- 值
3.对象的比较:
- 身份比较:用于确定是否同一个对象—id()
- 类型比较:用于确定是否同属于一个类型—type(),isinstance()
- 值比较:值是否相同— ==
4.常用对象:
- 数值
- 字符串
- 列表
- 元组
- 字典
- 集合
5.对象=属性+方法
类(class)
1.什么是类:
将同一种具体事物的共同特性抽象出来的表现
2.类的特性:
- 类是一种数据结构,可用于创建实例(一般情况,类封装了数据和对应的方法)
- python的类是一个可调用对象,即类对象
- python2.2之后,类是一种自定义类型(实例是声明某个自定义类型的变量)
3.类的关系:
- 依赖:一个类的方法操纵另一个类的对象
- 聚合:类A的对象包含类B的对象
- 继承:描述特殊与一般关系
4.定义类的格式:
class 类名(类名首字母建议大写):
code
例1:

定义的Temple就是类对象,而a作为类对象实际应用,是一个实例对象
例2:
class People():
#属性
head=1 #一个头
legs=2 #两条腿
hands=2 #两只手
#方法
def walk(self):
print('走了一步')
def seyhello(self):
print('看见熟人打招呼')
调用结果:

其中,People就是类对象,yang就是实例对象,yang=People() 这句话把People实例化给yang

而head,hand,legs就是类属性,而walk和seyhello就是类的方法(函数)
洗礼灵魂,修炼python(31)--面向对象编程(1)—面向对象,对象,类的了解的更多相关文章
- Python进阶 函数式编程和面向对象编程等
函数式编程 函数:function 函数式:functional,一种编程范式.函数式编程是一种抽象计算机的编程模式. 函数!= 函数式(如计算!=计算机) 如下是不同语言的抽象 层次不同 高阶函数: ...
- Python入门之面向对象编程(一)面向对象概念及优点
概念 谈到面向对象,很多程序员会抛出三个词:封装.继承和多态:或者说抽象.一切都是对象之类的话,然而这会让初学者更加疑惑.下面我想通过一个小例子来说明一下 面向对象一般是和面向过程做对比的,下面是一个 ...
- 浅谈Python中函数式编程、面向对象编程以及古怪的PythonIC
1.函数式编程作为结构化编程的一种,正在受到越来越多的重视.那么什么事函数式编程呢? 在维基百科中给出了详细的定义,函数式编程又称泛函数编程,是一种编程规范,它将函数运算视为数学上的函数计算.简单的来 ...
- python 面向对象编程、获取对象信息
面向对象与面向过程 参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0 ...
- Python - 面向对象编程 - 什么是对象和类
面向对象编程 Object Oriented Programming,简称 OOP,是一种程序设计思想 OOP 把对象作为程序的基本单元,一个对象包含了数据和操作数据的方法 Python里面有一句话: ...
- 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍
面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...
- java面向对象编程——第四章 类和对象
OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启 ...
- PHP面向对象编程学习之对象基础
php虽然是一门学习起来非常简单的语言,但是这门语言也包含了对面向对象编程的支持.尤其是随着php5的发布,php对面向对象的支持有了很大的进步.最近学习了一下php的面向对象编程,不禁感慨,面向对象 ...
- 04面向对象编程-01-创建对象 和 原型理解(prototype、__proto__)
1.JS中对象的"不同":原型概念 从Java中我们可以很好地去理解 "类" 和 "实例" 两个概念,可是在JavaScript中,这个概念 ...
- 廖雪峰Java2面向对象编程-1面向对象-1面向对象基础
1.对象的概念 面向对象编程:Object-Oriented Programming 对现实世界建立计算机模型的一种编程方法. 现实世界 计算机模型 Java代码 人 类/class class Pe ...
随机推荐
- C# 线程中使用delegate对控件进行操作
如果在线程中想改变控件的值是不可以的,会报出以下错误. 那么,如何在线程中改变控件上的值呢?第一个想到的就是委托. 委托定义:委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行 ...
- RobotFramework测试问题二:各种元素不能定位问题
各种元素不能定位问题 一.元素定位 A. Click Element + xpath B. Click Element + contains C. Execute Javascript + getEl ...
- GO入门——7. 并发
1 并发 1.1 goroutine Goroutine 奉行通过通信来共享内存,而不是共享内存来通信 goroutine 只是由官方实现的超级"线程池"而已. 每个实例 4-5K ...
- SQL 必知必会·笔记<15>创建和操纵表
创建表的两种办法: 使用DBMS 提供的交互式创建和管理数据库表的工具: 直接用SQL 语句创建. 表创建基础 创建表示例: CREATE TABLE Products ( prod_id ) NOT ...
- google 身份验证器
谷歌身份验证器原理 就是服务器与客户端算法相同
- Kafka的通讯协议
Kafka的通讯协议 标签:kafka Kafka的Producer.Broker和Consumer之间采用的是一套自行设计的基于TCP层的协议.Kafka的这套协议完全是为了Kafka自身的业务需求 ...
- 3分钟看完Java 8——史上最强Java 8新特性总结之第一篇 函数式编程基础
目录 · 行为参数化 · Lambda表达式 · 概况 · 函数式接口 · 类型推断 · 使用外层变量 · 方法引用 · 复合Lambda表达式 行为参数化 1. 理解函数式编程要先理解行为参数化. ...
- c++语言的输入输出流库
1.c++语言标准输入输出流 <1>控制符的用法 #include <iostream> #include <iomanip> using namespace st ...
- ARM常用汇编指令列表 --- 转自百度文库
- OOP 面向对象的理解
概念 面向对象编程(OOP)是一种编程语言模型,围绕对象是行为.数据.逻辑. 从历史上看,程序被视为一种逻辑程序,它接收输入数据,处理数据并生成输出数据. 基础 面向对象的3大核心思想:封装.继承.多 ...