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

面向对象软件工程 《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录:        第一部分 面向对象软件工程简介   第一章  面向对象软件工程的范畴   第二章  软件生命周期模型   第三章  软件过程   第四章  软件团队   第五章  软件工程工具   第六章  测试   第七章  从模块到对象   第八章  可复用性和可移植性   第九章  计划与估算         第二部分 软件生命周期工作流   第十章  需求工作流   第十一章 分析工作流   第十二章 设计工作流   第十三章 实现工作流   第十四章 交付后维护   第十五章 UML的进一步讨论 这本书是我现在学习“软件工程”这门课的教材,感觉写的挺好。内容很丰富,而且浅显易懂,例子很多,很容易理解里面的内容。推荐 立即下载

面向对象

 

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就是类的方法(函数)

什么是面向对象 什么是面向对象什么是面向对象什么是面向对象什么是面向对象什么是面向对象什么是面向对象什么是面向对象什么是面向对象 立即下载

相关推荐

RK3576开发板ROS2部署实战:从Buildroot配置到Hello World Demo

本文详细介绍了在RK3576开发板上部署ROS2的完整实战流程。从Buildroot工程配置、集成ROS2依赖,到搭建Docker交叉编译环境、处理编译难题,最终完成系统镜像打包并在板端成功运行Talker-Listener Demo。该指南旨在帮助开发者深入理解嵌入式机器人系统的构建链,实现从底层到应用的完全掌控。

mac99的博客 1149

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

面向对象 1.什么是面向对象 (图片来自网络) 哈哈,当然不是图中的意思。 1).面向对象(Object Oriented,OO)是软件开发方法。利用各大搜索引擎得到的解释都太官方,完全看不懂啥意思对吧?那么我的理解是这样: 在上一篇博文说到了装饰器的含义,给一个现有的程序添加新的功能,同时又不改变其结构,作为现有对象的一个包装修饰。那么其实被用于修饰的程序就是...

dingyu6453的博客 139

手机摄影新宠:In-line Hardware EIS如何让你的4K视频稳如鸡头(附实测对比)

本文深入解析了手机摄影中的In-line Hardware EIS(硬件级行内电子图像稳定)技术。通过对比传统软件EIS,阐述了其通过硬件管道实时处理实现极低延迟、减少画面裁切和有效抑制果冻效应的核心优势,并结合4K视频的日夜间实测,展示了该技术如何让手持拍摄的视频“稳如鸡头”,显著提升创作体验与成片质量。

tree的博客 994

关于面向对象(OOB)的一些理解。主要是封装、继承、多态。

【封装】 1.将类的属性进行私有化处理,不允许外部程序直接访问。并对外提供统一的方法,设置和读取私有属性。 2.实现访问控制,限制属性访问。 优点:只能通过规定的方法访问数据,方便在方法中加入控制语句,防止不合法赋值。 3.除了属性的封装之外,将需要重复使用的代码提取到方法中加入控制语句,防止不合法赋值。 public class Demo01_Test { private String pers...

weixin_30547797的博客 600

笔试题-2023-芯动-数字IC设计【纯净题目版】

笔试题-2023-芯动-数字IC设计【纯净题目版】

w0shishabi的博客 6394

SAP Joule 在顾问与开发者场景的双擎定位:Joule for Consultants 与 Joule for Developers 全面解读

SAP推出企业级AI助手Joule,分为顾问版(Joule for Consultants)和开发者版(Joule for Developers)两个版本。顾问版聚焦咨询业务,整合SAP知识库和方法论,辅助方案设计、差距分析和实施落地;开发者版嵌入开发工具链,支持代码生成、解释、测试和迁移。两者共享智能底座但面向不同场景:顾问版优化项目交付流程,开发者版提升工程效率。典型案例显示,Joule能有效缩短云转型周期,实现从业务咨询到技术落地的无缝衔接。该产品通过AI代理和知识图谱技术,为企业数字化转型提供端到端

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 351

OO(object oriented面向对象)

面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP 一、OO - Object-Oriented(面向对象) 对象代表真实或抽象的事物,有一个名字(唯一标识),有明确的职责(well-defined responsibilities),展示良好的行为(well-defined behavior),接口清晰,并且尽可能简单、自相容,内聚,...

weixin_33851177的博客 410

神经形态芯片:IBM TrueNorth技术详解以及应用案例

2018年的一项演示中,机器人使用TrueNorth处理了复杂的路径规划,功耗仅为传统系统的1/10。它通过模仿人脑的结构,解决了传统芯片在功耗和并行性上的痛点,并在图像识别、物联网和机器人等领域展现了强大潜力。:不同于传统芯片的时钟驱动,TrueNorth是事件驱动的。例如,工厂中的振动传感器使用TrueNorth检测设备故障的早期迹象,实现了更高效的维护策略,避免了停机时间。:在医疗领域,TrueNorth可以用于可穿戴设备,比如一个智能助听器,它能过滤噪音并增强特定声音,功耗低到可以用纽扣电池供电。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2475

java基础巩固训练营【第一轮】(六) 面向对象的JAVA

当人走的太快的时候就要停下来,让灵魂能够跟上。 1941

风险登记册vs问题日志:项目经理必须掌握的区别与应用

在项目管理的世界里,风险登记册和问题日志就像是项目经理的两个得力助手。我们的目的就是要搞清楚这两个助手各自的特点、区别以及如何在项目中好好使用它们。范围涵盖了项目从启动到结束的整个过程,无论是小项目还是大项目,都能从对这两个工具的正确使用中受益。我们先会用有趣的故事引出风险登记册和问题日志的概念,然后像给小学生讲故事一样解释它们是什么。接着分析它们之间的关系和区别,再用代码示例模拟它们在项目中的应用,之后介绍实际的应用场景、推荐相关工具和资源,探讨未来的发展趋势和挑战。

项目管理的博客 872

滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法

滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法

jane0819的博客 521

python-面向对象(OOP)基本概念

面向对象基本概念 面向过程和面向对象是两种不同的编程方式 面向过程和面向对象的基本概念 (1)面向过程 把完成某一个需求的所有步骤从头到尾逐步实现 根据开发需求,将某些功能独立的代码封装成一个又一个函数 最后完成的代码,就是顺序地调用不同的函数 (2)面向对象 面向对象是更大的封装,根据职责在一个对象中封装多个方法 在完成某一个需求前,首先确定职责,----要做的事情(方法) 根据职责确定不同的对象,在对象内部封装不同的方法 最后完成的代码,就是顺序地让不同的对象调用不同的方法 特点: (1) 注重

ljsykf的博客 902

在 SAP ABAP 里可靠地对接 FTP 服务器:从连接、命令到传输与排错的完整实战

本文详细介绍了在SAP ABAP中实现FTP文件交换的完整技术方案。文章首先解析了FTP协议的双连接特性(控制连接与数据连接),强调保持控制连接的重要性。随后详细说明了ABAP中FTP操作的四步标准流程:建立连接(包含HTTP_SCRAMBLE加密)、执行命令、断开连接和关闭RFC通道。文章提供了实战案例代码,演示如何将FTP文件复制到应用服务器再读取进内表处理,特别指出后台作业与前台操作的关键差异。最后总结了常见错误排查要点,包括连接模型、路径设置和资源释放等问题。全文通过SAP标准函数模块的调用顺序、典

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 303

洗礼灵魂,修炼python(40)--面向对象编程(10)—定制魔法方法+time模块

定制魔法方法 1.什么是定制魔法方法 首先定制是什么意思呢?其实就是自定义了,根据我们想要的要求来自定义。而在python中,其实那些所谓的内置函数,内置方法,内置属性之类的其实也是自定义出来的,不过是龟数开发python时已经给出了,已经自带了基本能想到的功能都带有了,换句话就是已经给我们事先定义好了,要用的话,直接拿来就用就是,不需要我们自己再去定义。定制魔法方法就是自定义魔法方...

dingyu6453的博客 168

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

python 股票 实例-python-面向对象(股票对象举例)

股票对象实例class Stock(object):def __init__(self,stockCode ,stockName,averagePrice_yesterday,averagePrice_today,position_old):self.stockCode=stockCodeself.stockName=stockNameself.averagePrice_yesterday=ave...

weixin_39880895的博客 624

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

洗礼灵魂,修炼python(58)--爬虫篇—【转载】urllib3模块

urllib3 1.简介 urllib3相比urllib,urlib2,又有些一些新的功能,可以实现很多东西,而这个模块有点特殊的是,并且还可以同时存在于python2和python3,但说实话,用的真的很少的。 2.方法/属性 3.常用方法/属性解析 由于用的很少,所以相关资料也很少,我反正是很少用,要嘛就用urllib,urlib2,要嘛直接用python3里的urll...

dingyu6453的博客 516

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Python机器学习:从零基础到项目实战

当您翻开此书,您正踏入一场数据与智慧的修行。机器学习,并非冰冷的符码,而是机器模拟人类洞察世界的法门。本书将带您,以Python为舟,泛游于算法之海。我们不只传授“术”,更探求其后的“道”——从数据的生灭流转中观照规律,于模型的迭代演进里体悟得失。愿您合上书卷时,收获的不仅是驾驭数据的技能,更有一双洞悉复杂、化繁为简的“智慧之眼”。现在,让我们一同启程。

YunWisdom 963

随机森林 OOB理解

一个大小为N的数据集.1.有一个问题是, 对于随机森林的每一棵CART树是怎么训练的, 如何划分训练集测试集?Bootstrap, 对数据集随机有放回抽样N次作为一棵CART树的训练集.根据概率论,可知数据集中有大约1/3的数据是没有被选取的(称为Out of bag),所以就是这没被选取的部分作为小树的测试集.2. 接下来的问题是, 怎么测试随机森林的性能, 测试集是什么?留坑....

nemo的博客 1万+

OOB(out-of-band data)

OOB(out-of-band data)(综合编辑) 传输层协议使用带外数据(out-of-band,OOB)来发送一些重要的数据,如过通信一放有重要的数据需要通知对方时,协议能够将这些数据快速地发送到对方.为了发送这些数据,协议一般不使用与普通数据相同的通道,而是使用另外的

donglipeng2009的专栏 5194
上一篇: 洗礼灵魂,修炼python(30)--装饰器(2)—>装饰器总结+进阶使用
下一篇: 洗礼灵魂,修炼python(32)--面向对象编程(2)—进一步认识类
geekbyte.
博客等级 码龄11年 308粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值