python强势来袭-23-面向对象~

Python与其他编程语言的对比与应用场景分析 编程语言作为软件开发的基础工具,其设计哲学直接影响开发效率与系统性能。Python凭借简洁语法和丰富生态成为多领域首选,特别适合快速原型开发和数据处理场景。相比之下,Java的强类型系统更适合大型企业应用,C++在性能敏感领域保持优势,而JavaScript主导前端开发。理解动态类型与静态类型、解释执行与编译执行的原理差异,有助于开发者根据项目需求选择合适技术栈。Python在机器学习、Web开发等场景展现强大生产力,而结合C++扩展模块可突破性能瓶颈。掌握主流编程语言的特性对比,能够帮助技术人员构建更合理 阅读详情

本文概念为主~是为了后面的所有的开发进行一个理论性的铺垫,尽量总计的简单易懂,希望大家能耐心看完。

写在前面的话:关于类和对象那些事儿
有了类和对象的概念之后,我们开始逐步引入面向对象的概念
我们知道在程序中通过对象将属于同一组的数据统一的管理起来,同时通过类型来定义我们项目中需要的数据类型,通过创建对象的方式来使用这些数据。

那么接着上节课的内容,我们遇到了一下几个问题

  • 什么时候需要定义类型?
  • 定义类型需要初始化什么属性?定义什么方法?
  • 什么时候通过类型来创建对象?
  • 创建好的对象,在项目中怎么使用呢?

以上四个问题,就是我们要通过面向对象来解决的问题了

面向对象

1. 面向对象程序设计的由来

  • 编程语言的发展

程序设计这东西一开始出现,是按照人类的语言习惯,将尽量符合人类语言的语法结构来描述要实现的功能,然后通过各种软件环境[XX语言编译器、XX语言解释器]将这样符合人类语言的语法编译或者解释成计算机能认识和执行的语言去执行并实现功能的过程,于是出现了高级语言。

  • 面向过程的程序设计

高级语言出现之初,程序设计的思路,也是参考了人类解决问题的思路;
遇到一个问题,人类习惯性的思维方式是第一步做什么、第二步做什么、紧接着做什么,这样按照一定的步骤一直到实现最终想要的功能。
这样的按照事情/功能的处理过程和步骤来进行程序的设计和开发的过程,是一种解决问题的思路,我们称之为:面向过程的程序设计

  • 面向过程程序设计的缺陷

面向过程的程序设计发展了一定的时间之后,我们发现出现了一个非常重要的问题,如果仅仅是处理某一个功能的流程而言非常适合,但是如果一旦涉及到业务过程比较复杂的系统来说的话,面向过程的思路设计的程序出现了大量的代码冗余、同时不同的功能之间的冲突随着系统功能的增多冲突越来越多,另外当系统中的某些功能如果需要升级或者改动,会涉及到大量的代码的修改和功能的影响造成维护的不方便

  • 正当对的时间,正当对的地点,我遇见了你:面向对象

这时候,一帮大佬们围坐在一起,开始商量怎么样让我们的程序更加适合开发结构完整、流程复杂的系统项目呢!
有人就提出了,我们的程序,其实一直都是在模拟符合正常人的思维逻辑习惯的,小功能的处理就像我们处理一件小事一样,可以按照步骤进行处理,也就是按照面向过程的设计思路进行处理;
一个相对较大的系统的设计,就类似让一个人当国家领导人,怎么规划国家的各个机构;或者让一个人开一家公司,规划公司的部门结构;或者就简单的让一个人管理自己的家庭,规划家里的房子、柜子、桌椅板凳等等各种东西的归置一样;如果能做到这一点,符合正常人的思维习惯的程序设计思路不就出现了么!!!

  • 人之初,性本善

面向对象,按照系统的需要,将系统中用到的各个数据封装成独立的对象,通过对象之间的互相协作,来完成一个功能的过程;成为面向对象的程序设计。
简单看一下面向对象程序设计的思路
实现这样一个业务:我陪女朋友去看电影

  • 面向过程的设计思路:

1~我待着女朋友出发;
2~到电影院选电影、选座、买2张票;
3~进放映厅,看电影;
4~看完电影,回家。

  • 面向对象的设计思路:

1~抽取对象:我、女朋友、电影院
2~抽取对象的属性:我(看电影的行为,买票的行为),女朋友(看电影的行为),电影院(卖票的行为、放映电影的行为)
3~我[对象] 的<看电影>的方法中调用 女朋友[对象]的<看电影>的方法,然后调用我[对象]的<买票>的方法,在<买票>方法中调用电影院[对象]<卖票>的方法,最后完成我和女朋友看电影这个功能。

乍一看,面向对象怎么这么复杂,还是面向过程的程序简单易懂 此时~如果小明和它女朋友也想去看电影,你会想象得到,上面的程序会出现什么样的问题
面向过程:重新编写上面所有的代码,来完成小明和它女朋友看电影的过程 面向对象:创建一个小明对象、创建一个小明女朋友对象,调用函数功能实现。
现在,想象一下面向过程那么多代码重复写,想象一下创建一个对象的语法,那个更加简单呢?

2. 面向对象程序设计的特征
面向对象在实际项目开发中,为了更加符合人类的语言习惯和认识这个世界的思维方式,给这样的程序设计添加了一些特殊的处理让开发人员更加容易理解,同时提高了程序的健壮性、可扩展性和可维护性等

面向对象程序设计有三个最主要的特征

  • 封装
  • 继承
  • 多态

这三个特征主要含义如下:
1.封装:将对象的敏感的信息封装在对象的内部,不让外界直接访问,提高数据的安全性
2.继承:通过继承关系,梳理对象和对象之间的关系,同时提高了程序设计功能的强大的扩展性和代码的复用性
3.多态:程序在运行过程中,实时根据不同的数据执行不同的处理逻辑展现不同的状态,让程序的功能更加的完善健壮

后续的课程中,会对面向对象的特征进行详细的介绍。

在实际项目开发中,面向对象程序设计肯定不会像上面描述的那样来处理这样的问题,不过对于新手来说理解上还是存在一定的难度的
古人说,杀鸡焉用宰牛刀,同样的,我们的面向过程/面向对象等等各种编程思想,也是根据实际项目处理的功能场景来进行操作的,切记不能一棍子打死就认定了面向对象比面向过程好或者反之。
比如:就是在页面上打印一行信息或者处理一个简单的功能流程,用面向对象写了三五十行代码没有什么太大的意义,用面向过程几行代码搞定就OK了;如果要开发一个完整的具有复杂业务处理的系统,此时就需要主要使用面向对象来进行设计开发,系统中的功能处理的细节之处还是使用面向过程进行处理;
所以针对项目中的不同的功能场景,灵活使用学习过的编程思想才是程序设计的王道,当你写代码积累项目开发经验到一定程序,就不会再去思考面向过程面向对象的概念了,因为你的经验已经积累成你自己的开发思想,一个字写,就OK了。

如果你看到了这里,觉得文章写得不错可以加个关注!如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。

最后针对Android程序员,除了以上内容,我自己整理了一套最新的python系统资料可以免费送给大家,从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。需要这些资料的朋友,可以进python学习交流群:851211580免费领取 。

希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!后续还会更新技术干货,谢谢您的支持!

密评实战:应用层数据安全防护全解析 本文从实战角度深度解析三级信息系统密评中应用层数据安全防护的核心要点。围绕身份鉴别、访问控制、数据传输与存储安全、不可否认性等关键环节,结合国密算法(SM2/SM3/SM4)与智能密码钥匙等合规技术,提供了从代码审查、日志分析到流量验证的全链路排查方法,助力构建真正符合密评标准的数据安全防线。 阅读详情

相关推荐

实验四 基于IDEA+SpringBoot+Maven+Thymeleaf的系统实现实验目的

通过这次实验,我学习了如何成功进行IDEA+SpringBoot+maven的系统实现,搭建好IDEA+SpringBoot+maven的系统环境,成功地安装并配置了maven的运行环境,学会了创建springboot的三种方式,并且能将之前的实验结合起来运用。pom.xml中引入thymeleaf依赖,在classpath:/templates/下新建HTML页面(可采用实验一创建的页面),新建controller进行测试,访问页面后返回success成功数据。同时掌握和thymeleaf的基本语法。

m0_73502929的博客 1379

我与python约个会:22.企业级开发基础3:类和对象

本节课程,概念为主~是为了后面的所有的开发进行一个理论性的铺垫,尽量总计的简单易懂,希望大家能耐心看完。 0.写在前面:关于类和对象那些事儿 有了类和对象的概念之后,我们开始逐步引入面向对象的概念 我们知道在程序中通过对象将属于同一组的数据统一的管理起来,同时通过类型来定义我们项目中需要的数据类型,通过创建对象的方式来使用这些数据。 那么接着上节课的内容,我们遇到了一下几个问题

自由先锋 505

基于deepseek+dify+达梦实现自然语言查询数据库

自然语言查询数据库信息

weixin_43974943的博客 1593

Python面向对象之类和对象的创建

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。 面向对象的由来: 60年代中期的软件危机 落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列问题的现象 软件标准化与可重用性得到了工业界...

weixin_44881806的博客 616

从零复刻平衡小车(基于STM32F1)

平衡小车(基于STM32F1)

Legendyyy的博客 5039

Centos7网络配置(设置固定ip)

刚安装完系统,有的人尤其没有勾选自动网络配置的情况下,是访问不了外网的,本机也连不通虚拟机。或者现在有的是动态ip,几次之后启动ip地址就变了,会导致其他软件或程序之前连接配置要重新更改,很麻烦,下面讲解一下如何配置网络,如何设置成固定ip。

个人笔记git:https://gitee.com/tlangp/note.git 8053

跟着专家通过demo学OpenStack开发,数据库篇(下)

《通过demo学OpenStack开发》专栏是刘陈泓的系列文章,专栏通过开发一个demo的形式来介绍一些参与OpenStack项目开发的必要的基础知识,希望帮助大家入门企...

weixin_37098404的博客 378

【OpenClaw从入门到精通】第66篇:Skill开发进阶——从零打造一个跨境选品Skill(附完整代码)(2026实测版)

2026年跨境电商效率革命中,AI Agent已成为选品核心工具,但通用Skill难以适配个性化需求。本文以“跨境选品”为实战场景,从零讲解OpenClaw Skill的完整开发流程:从需求分析、目录结构设计、SKILL.md编写,到Python脚本开发(含1688商品搜索、销量分析、竞品对比核心功能),再到调试测试、安全审计与ClawHub发布。文中提供可直接复制的完整代码,覆盖多平台适配、异常处理、数据可视化等进阶功能,同时解决API调用、链接失效等实际问题。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 567

python 单点登录_复旦大学计算机系强势推出1000集Java+Python学习视频「赠视频」...

Java 和 Python 双方都有各自适合和发展的领域,所以别人常问我学习什么语言好,或者让我在两种语言进行比较好坏。其实编程语言只有适不适合你个人去学,并不存在好坏,每种语言的存在即是合理的,你想从事什么工作就去学习什么语言。当然在2019年的今天,无论是 Java 还是 Python,学出来之后找工作都是很容易的,而且小编为大家准备的教程(免费)每天拿出2-3个小时自学就可以,学的时间长了,...

weixin_40002009的博客 93

【实战】CANOE实现UDS安全访问过程的CAPL脚本

首先我已经有了包含安全访问算法的dll文件,并通过Diagnostics/ISO TP Configuration中加载了此dll文件,如下。在on start部分,要将“ECU qualifier“作为参数,执行diagSetTarget函数。这个函数是用于设置tester从现在开始与之通信的目标ECU,并配置/建立与该ECU的通信通道。我最近在做密钥学习上位机时,遇到一些问题:如何用CAPL脚本实现安全访问过程?ECU Qualifier可以通过加载cdd文件后,在如下位置找到。CAPL脚本如何编写。

weixin_46481662的博客 4939

当C#遇见声音魔法:从麦克风到文字的0.1秒奇幻漂流

为什么选300Hz?因为人声基频通常在85-255Hz,但清脆的“啊”可能到2kHz,所以300Hz是安全区!(参考知识库[1])

墨夶的博客 365

【2019年度合辑】手把手教你用Python做股票量化分析

引言不知不觉,2019年已接近尾声,Python金融量化公众号也有一年零两个月。公众号自设立以来,专注于分享Python在金融量化领域的应用,发布了四十余篇原创文章,超过两万人关注。这一...

Python金融量化 7060

抓包工具:Fiddler下载、安装、使用 教程

文章目录抓包工具:Fiddler下载、安装、使用 教程一、Fiddler 下载二、Fiddler 安装三、Fiddler 使用3、Statistics 请求的性能数据分析4、Inspectors 查看数据内容5、AutoResponder 允许拦截指定规则的请求6、Composer 自定义请求发送服务器7、Filters 请求过滤规则8、Timeline 请求响应时间9、Fiddler 设置解密HTTPS的网络数据10、Fiddler 内置命令与断点 抓包工具:Fiddler下载、安装、使用 教程 Fidd

Sumarua的博客 17万+

garch预测 python_【2019年度合辑】手把手教你用Python做股票量化分析

引言不知不觉,2019年已接近尾声,Python金融量化公众号也有一年零两个月。公众号自设立以来,专注于分享Python在金融量化领域的应用,发布了四十余篇原创文章,超过两万人关注。这一路走来,有过欣喜也有过彷徨,但更多的是成长的美丽心情和感恩,感谢大家的一路支持。“凡是过往,皆为序章”(What's past is prologue)。在2020年的钟声敲响之际,对过往推文进行一次年终...

weixin_39631572的博客 754

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

2025年编程语言热度分析:Python领跑,Go与Rust崛起

Python继续占据第一的位置,增长显著,主要受益于 AI 和数据科学的蓬勃发展。C++和Java紧随其后,保持着在高性能计算和企业级开发中的重要地位。Go和Rust等现代语言正在快速增长,特别是在云计算和系统编程领域。SQL和PHP等老牌语言依然占据重要位置,虽然增长有限但仍广泛应用于数据库和 Web 开发中。总的来说,编程语言的流行趋势与当前技术的发展密切相关。AI、云计算、大数据等技术领域的快速发展推动了一些编程语言的增长,同时也影响着开发者的选择。

gs80140的专栏 8279

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

有没有面了影石嵌软的牛友呀能传授点经验吗,想好好准备一下

记录9.25面寒武纪芯片后端,感觉面试官态度还是很好的,但是确实对数字后端我了解太少了,RTL是啥都没答上来,然后问了一些项目,mosfet的知识倒是都回答上来。去一家企业交简历,然后被另一家的hr拉住,让我投他们公司,然后跟人事聊了聊,问我项目,研究工作,然后告诉我他们公司对本科学历有要求,我就呵呵了,是你TM拉我过来。因为美团二面面试官修改了一次二面面试时间,导致我系统上的二面信息不见了,只显示了一面的信息,这种情况系统后台会有我的二面记录吗,影响我被捞吗?大概40分钟,项目+场景,无八股,无手撕。

2301_78234743的博客 731

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【收藏】2020年Python量化文章合辑

引言Annual work summaryLorem Ipsum不知不觉,公众号“Python金融量化”已走过两个年头。这一路走来非常感谢读者的支持,尤其是知识星球圈友,你们的知识付费是...

Python金融量化 1654

突破交易策略实战:Python量化实现与风险管理详解

突破交易是量化投资中的经典趋势跟踪策略,其核心原理在于捕捉价格突破关键支撑阻力位时的动能转换。从技术分析角度看,突破策略通过识别价格对前期高点或低点的有效突破,判断趋势的起始阶段。这种策略的技术价值在于能够系统化地捕捉趋势性行情,避免主观情绪干扰。在实际应用中,突破策略特别适用于趋势明显的股票、期货和加密货币市场。要实现稳健的突破策略,需要结合有效的信号过滤机制和严格的风险控制,其中假突破识别和止损设置是关键挑战。本文基于backtrader框架,详细解析了突破策略的Python实现,重点探讨了如何通过参数

weixin_34205826的博客 481

「Java核心技术大会 2023」6月启动,邀你共同探讨Java生态

人工智能在22年、23年的再次爆发让Python成为编程语言里最大的赢家;云原生的持续普及令Go、Rust等新生的语言有了进一步叫板传统技术体系的资本与底气。我们必须承认在近几年里,Java阵营的确受到了前所未有的挑战,出现了更多更强大的竞争者。但是,迄今Java仍然有着非常庞大的开发者生态,仍是使用人数最多的编程语言,仍是服务端应用、大数据应用、企业级产品的首选。本届技术大会由国内Java技术传播领军机构机械工业出版社华章分社发起,周志明、李三红、杨晓峰。

m0_64336780的博客 1万+

Python零基础入门:环境搭建、报错排查与首次运行全指南

编程入门的第一步,往往是理解代码运行的底层链路:你写的脚本需要通过解释器逐行执行,而运行结果依赖环境变量、包管理工具和正确的解释器路径。对零基础学习者而言,真正的难点并不在语法,而在于环境配置、依赖安装与报错信息解读——无论是缺失模块导致的ModuleNotFoundError,还是路径错乱引发的命令无法识别,都源于对执行机制的模糊认知。只有打通“写代码→运行→反馈→修正”的闭环,建立起读懂Traceback的排错直觉,才能为后续更复杂的工程实践奠定基础。当你掌握了环境配置与基础语法,就有了探索爬虫、数据分

weixin_32288959的博客 230

TIOBE 指数:2026 年编程语言排行榜

TIOBE 指数由荷兰 TIOBE 软件公司自 2002 年起持续编制,长期追踪全球编程语言的流行度。该指数整合谷歌、必应、雅虎、维基百科、亚马逊、油管、百度等主流搜索引擎的检索数据。评判逻辑十分直白:某门语言的教程、技术文档、问题排查相关搜索量越高,代表其行业关注度与实际使用率越高。有批评者认为,这种统计方式更偏袒历史悠久、文档资料庞大且遗留项目繁多的老牌语言。而支持者则反驳,相比 GitHub 星标数、Stack Overflow 问卷调查,该方式更能真实反映行业实际开发生态。事实上,两种观点各有道理。

uzong 1647

刚刚!Java 被挤出前三

架构师大咖 架构师大咖,打造有价值的架构师交流平台。分享架构师干货、教程、课程、资讯。架构师大咖,每日推送。公众号该公众号已被封禁转自:优快云(ID:优快云news)10 月TIOBE 编程语言榜单已最新出炉,一起来看看本月有什么值得关注的新变化吧!C# 逼近Java,即将跌至第 5 名?去年 12月,Ja...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 199

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 399

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 232
上一篇: python强势来袭-22-类和对象~万物伊始
下一篇: python强势来袭-25-面向对象必杀技~继承~
python-花猫
博客等级 码龄7年 105粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值