面向对象与面向过程 发布时间:2026/8/6 19:11:02 目录类与对象类Class定义类self 关键字“魔法方法”对象Object定义对象获取属性及调用方法面向对象Object-OrientedOO封装Encapsulation继承Inheritance多态Polymorphism抽象类与抽象方法面向对象的其它特征面向过程Procedural Programming面向对象与面向过程的区别类与对象类Class对一类具有相同属性和方法的对象的抽象描述属性(Attributes)描述对象的特征或状态也称为成员变量方法(Methods)描述对象的行为或功能也称为成员函数定义类class ClassName(object): attribute value # 定义类的属性变量 def __init__(self): self.attribute value # 定义实例的属性【self关键字只能在函数内】 def function(self): # 定义类的方法函数 passself 关键字代表 指向 类 的当前实例对象谁调用函数self就是谁为 实例方法 提供 访问该实例自身属性和方法 的 引用是类方法的第一个参数指向 调用该方法 的 实例对象“魔法方法”【在特殊情况下会被自动调用】def __init__(): 在定义 对象 时会被自动调用执行def __init__(self, color, number): self.color color self.number numberdef __str__(): 在输出打印 对象的属性 时会被自动调用执行def __str__(self): return self.attribute # 返回值的类型必须是字符串类型def __del__(): 在 对象的生命周期结束时被销毁 时会被自动调用执行def __del__(self): pass对象Object对象是类的实例是根据类创建的具体实体一个类可以创建多个对象定义对象variable ClassName()获取属性及调用方法在类内获取属性及调用方法self.attribute # self.属性 self.function() # self.函数名()在类外获取属性及调用方法variable.attribute # 变量名.属性 variable.function() # 变量名 . 函数名()面向对象Object-OrientedOO一种编程范式程序设计思想【一切皆对象】以对象为核心通过封装、继承、多态等机制组织和复用代码优点模块化、复用性、灵活性封装Encapsulation将数据属性和操作数据的方法行为绑定在一起 形成一个独立的对象对外隐藏内部实现细节仅暴露必要接口【封装不只对于类的封装也对于函数的封装】封装可以为属性和方法添加私有权限只能在类内访问【类外通过公共方法接口访问】class ClassName(object): def __init__(self, value): self.__attribute value # 定义私有属性 def __function(self): # 定义私有方法 return self.__attribute def function(self): # 定义公共方法对外提供接口 return self.__function() # 调用私有方法返回私有属性继承Inheritance多个类之间的所属关系子类派生类默认继承父类基类、超类的属性和方法单继承class ClassName(object): # 定义父类 attribute value def function(self): pass class Subclasses(ClassName): # 定义子类继承自父类 attribute value def function(self): pass多继承class ClassName(object): # 定义父类 attribute value def function(self): pass class SubclassesOne(ClassName): # 定义子类继承自父类 attribute value def function(self): pass class SubclassesTwo(ClassName, SubclassesOne): # 定义子类继承自两个父类 attribute value def function(self): pass子类调用父类方法class SubclassTwo(ClassName, SubclassesOne): ClassName.function() # 调用指定基类的函数 — 父类名.方法名(self) super().function() # 只能调用传入的第一个父类的函数子类调用父类的同名方法当一个类有多个父类时默认使用第一个父类的同名属性和方法具体调用顺序依据MRO可以使用 类名.__mro__ 或 类名.mro() 方法查看调用的先后顺序MRO(Method Resolution Order)方法解析顺序方法重写当 子类属性或方法 与 父类的属性或方法 名字相同 时 从父类继承下来的成员可以 重新定义多层继承指多个类之间的继承的层级关系多态Polymorphism同样一个函数在不同的场景下有不同的状态多态的条件1、有继承 定义父类、定义子类子类继承父类)2、函数重写 子类重写父类的函数3、父类引用指向子类对象 子类对象传给父类对象调用者class Bird: def fly(self): print(Bird can fly) class Penguin(Bird): def fly(self): print(Penguin cannot fly) class Eagle(Bird): def fly(self): print(Eagle can fly very high) def bird_flying_test(bird): bird.fly() bird Bird() penguin Penguin() eagle Eagle() bird_flying_test(bird) bird_flying_test(penguin) bird_flying_test(eagle)多态的优点提高代码的可扩展性和可维护性提高代码复用性 使程序更易于扩展和修改分离接口与实现抽象类与抽象方法抽象类含有 抽象方法 的 类抽象方法函数体是空实现的passclass ClassName(object): def function_one(self): pass def function_two(self): pass抽象类的核心特征1、必须包含抽象方法2、不能被实例化3、子类必须实现其抽象方法面向对象的其它特征类属性在类内部、方法外直接定义(变量名 值【类内函数外】类中所有对象共享该属性 当某一对象修改类属性时所有对象及类本身均受影响通过 类名.属性名 的方式访问推荐对象属性在函数中定义在 init 方法也属于函数或实例方法中通过 self. attribute的方式定义实例属性为某个对象所独有修改某个实例属性仅影响当前对象通过 对象名.属性名 的方式访问易与实例属性混淆类方法必须传入参数第一个参数 cls指向类本身装饰器classmethodclass ClassName(object): classmethod def function(cls): pass静态方法无需固定参数装饰器staticmethodclass ClassName(object): staticmethod def function(): pass面向过程Procedural Programming一种以过程Procedure为核心的编程范式核心思想自顶向下、逐步分解核心特点1、以函数为基本单元2、线性执行流程从主函数开始依次调用其它函数3、数据与操作分离4、自顶向下的设计面向对象与面向过程的区别面向过程以“过程”为中心将程序分解为一系列步骤或函数强调“如何做”。面向对象以“对象”为中心将数据和行为封装为对象强调“谁来做”。 相关新闻 如何实现ElasticJob任务依赖调度:5个简单方法解决复杂任务编排难题 如何实现ElasticJob任务依赖调度:5个简单方法解决复杂任务编排难题 【免费下载链接】shardingsphere-elasticjob Distributed scheduled job 项目地址: https://gitcode.com/gh_mirrors/shar/shardingsphere-elasticjob 你是否遇到过这样的问题:数… 2026/8/6 19:11:02 2027北京消费电子展官方预定!6月举办,付费制过滤无效客流降本增效 2027年6月26日至28日,北京消费电子展坚持全观众付费注册模式,以此过滤无明确需求的观光客流,帮助参展企业降低无效接待成本,展位预定同步开放客商前置匹配权限。免费开放的展会往往存在大量调研、闲逛客流,企业需要耗费… 2026/8/6 19:06:02 FakeTraveler:3步实现Android设备位置模拟的高效开源解决方案 FakeTraveler:3步实现Android设备位置模拟的高效开源解决方案 【免费下载链接】FakeTraveler Fake where your phone is located (Mock location for Android). 项目地址: https://gitcode.com/gh_mirrors/fa/FakeTraveler 在移动应用开发、隐私保护或地理测… 2026/8/6 19:06:02 最新新闻 Python RESTful API设计指南与最佳实践 1. 为什么RESTful API设计如此重要?在当今的互联网服务架构中,RESTful API已经成为不同系统间通信的事实标准。作为一名长期使用Python构建Web服务的开发者,我深刻体会到良好的API设计能显著降低系统维护成本,提升开发效率。特别是… 2026/8/7 1:36:27 UE5 UMG Slider动态材质进阶:从原理到实战的完整实现方案 1. 项目概述:从静态UI到动态视觉反馈在UE5的UI开发中,Slider(滑动条)控件是调节数值最直观的组件之一,无论是调整音量、亮度,还是角色属性,都离不开它。但默认的Slider样式往往千篇一律… 2026/8/7 1:36:27 Windows桌面开发框架选型指南:从Win32到跨平台全面解析 1. 从“桌面已死”到“桌面复兴”:为什么今天还要谈Windows桌面开发?大概十年前,移动互联网的浪潮席卷全球,智能手机App成为绝对的主角,“桌面已死”的论调一度甚嚣尘上。很多开发者,包括我自己,… 2026/8/7 1:36:27 数据导向设计(DOD)核心思想与实践:从缓存优化到ECS架构 1. 先搞清楚 DOD 到底是什么,以及它能帮你解决什么问题“Have fun with DOD” 这个标题,乍一看有点模糊,但结合技术圈的常见语境,DOD 通常指向Data-Oriented Design(数据导向设计)。这不是一个具体的工具或… 2026/8/7 1:36:27 Cadence PCB资料导出全流程:从Gerber到BOM的实战避坑指南 1. 项目缘起:为什么“导出”这个动作值得单独拿出来说?在电子设计自动化(EDA)这个行当里,尤其是用Cadence系列工具(比如Allegro、OrCAD)画板子的工程师,谁没干过导出Gerber、导出BOM… 2026/8/7 1:36:27 macOS系统安装程序全攻略:从App Store到命令行下载与启动盘制作 1. 项目概述:为什么我们需要掌握多种下载方法?在苹果生态里工作久了,无论是作为开发者、IT支持还是深度用户,总会遇到需要重新安装或降级macOS系统的情况。可能是新买的Mac需要降级到与某个专业软件兼容的旧版本,也可能… 2026/8/7 1:35:05 日新闻 “Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求 “Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属… 2026/8/7 0:01:21 调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制 调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制。其目标是在多任务环境中实现公平性、高效性、响应性与吞吐量的平衡。常见的调度算法包括: 先来先服务(FCFS)… 2026/8/7 0:01:21 Cisco IOS XE 曝多个高危安全漏洞,企业网络设备面临远程攻击风险 最近思科发布了一则让不少网安从业者捏把汗的安全公告。旗下广泛部署的 Cisco IOS XE 软件被挖出多个严重漏洞,其中最狠的一个拿到了 CVSS 9.8 的满分级评分,几乎触顶。对于依赖思科设备支撑核心业务的企业来说,这绝不是可以拖到下季度再处理… 2026/8/7 0:01:21 周新闻 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am… 2026/8/6 10:11:44 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架… 2026/8/5 7:15:00 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,… 2026/8/5 6:23:51 月新闻 【YOLOv11模型改进系列】08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 老伙计,咖啡准备好了吗?上篇我们聊了Mosaic+MixUp的“混乱美学”,你肯定已经体会到,手动调数据增强策略就像给模型当保姆——每换一个数据集就要重新试一遍参数。 上周有个做工业质检的朋友找我… 2026/8/5 7:15:27 AI 智能电动窗帘电机高集成、低功耗 MOSFET 精准选型方案 随着 AIoT 与智能家居深度融合,智能电动窗帘电机对功率 MOSFET 提出新要求:微型化、高效率、逻辑电平驱动及静音运行。微碧半导体(VBsemi)基于先进的 Trench 和 SGT 工艺,为您提供覆盖 H桥驱动、电源管理及电机控制的完… 2026/8/4 8:25:47 AI 智能电动窗帘电机智能功率 MOSFET 完整选型方案 随着 AI 技术在智能家居中的普及(如语音控制、光线感应、场景联动),电动窗帘电机对功率 MOSFET 提出更高要求:高效率、低噪音、高集成度。微碧半导体(VBsemi)基于 SGT 及 Trench 工艺,为您提供覆… 2026/8/6 6:12:06
如何实现ElasticJob任务依赖调度:5个简单方法解决复杂任务编排难题 如何实现ElasticJob任务依赖调度:5个简单方法解决复杂任务编排难题 【免费下载链接】shardingsphere-elasticjob Distributed scheduled job 项目地址: https://gitcode.com/gh_mirrors/shar/shardingsphere-elasticjob 你是否遇到过这样的问题:数… 2026/8/6 19:11:02
2027北京消费电子展官方预定!6月举办,付费制过滤无效客流降本增效 2027年6月26日至28日,北京消费电子展坚持全观众付费注册模式,以此过滤无明确需求的观光客流,帮助参展企业降低无效接待成本,展位预定同步开放客商前置匹配权限。免费开放的展会往往存在大量调研、闲逛客流,企业需要耗费… 2026/8/6 19:06:02
FakeTraveler:3步实现Android设备位置模拟的高效开源解决方案 FakeTraveler:3步实现Android设备位置模拟的高效开源解决方案 【免费下载链接】FakeTraveler Fake where your phone is located (Mock location for Android). 项目地址: https://gitcode.com/gh_mirrors/fa/FakeTraveler 在移动应用开发、隐私保护或地理测… 2026/8/6 19:06:02
Python RESTful API设计指南与最佳实践 1. 为什么RESTful API设计如此重要?在当今的互联网服务架构中,RESTful API已经成为不同系统间通信的事实标准。作为一名长期使用Python构建Web服务的开发者,我深刻体会到良好的API设计能显著降低系统维护成本,提升开发效率。特别是… 2026/8/7 1:36:27
UE5 UMG Slider动态材质进阶:从原理到实战的完整实现方案 1. 项目概述:从静态UI到动态视觉反馈在UE5的UI开发中,Slider(滑动条)控件是调节数值最直观的组件之一,无论是调整音量、亮度,还是角色属性,都离不开它。但默认的Slider样式往往千篇一律… 2026/8/7 1:36:27
Windows桌面开发框架选型指南:从Win32到跨平台全面解析 1. 从“桌面已死”到“桌面复兴”:为什么今天还要谈Windows桌面开发?大概十年前,移动互联网的浪潮席卷全球,智能手机App成为绝对的主角,“桌面已死”的论调一度甚嚣尘上。很多开发者,包括我自己,… 2026/8/7 1:36:27
数据导向设计(DOD)核心思想与实践:从缓存优化到ECS架构 1. 先搞清楚 DOD 到底是什么,以及它能帮你解决什么问题“Have fun with DOD” 这个标题,乍一看有点模糊,但结合技术圈的常见语境,DOD 通常指向Data-Oriented Design(数据导向设计)。这不是一个具体的工具或… 2026/8/7 1:36:27
Cadence PCB资料导出全流程:从Gerber到BOM的实战避坑指南 1. 项目缘起:为什么“导出”这个动作值得单独拿出来说?在电子设计自动化(EDA)这个行当里,尤其是用Cadence系列工具(比如Allegro、OrCAD)画板子的工程师,谁没干过导出Gerber、导出BOM… 2026/8/7 1:36:27
macOS系统安装程序全攻略:从App Store到命令行下载与启动盘制作 1. 项目概述:为什么我们需要掌握多种下载方法?在苹果生态里工作久了,无论是作为开发者、IT支持还是深度用户,总会遇到需要重新安装或降级macOS系统的情况。可能是新买的Mac需要降级到与某个专业软件兼容的旧版本,也可能… 2026/8/7 1:35:05
“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求 “Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属… 2026/8/7 0:01:21
调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制 调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制。其目标是在多任务环境中实现公平性、高效性、响应性与吞吐量的平衡。常见的调度算法包括: 先来先服务(FCFS)… 2026/8/7 0:01:21
Cisco IOS XE 曝多个高危安全漏洞,企业网络设备面临远程攻击风险 最近思科发布了一则让不少网安从业者捏把汗的安全公告。旗下广泛部署的 Cisco IOS XE 软件被挖出多个严重漏洞,其中最狠的一个拿到了 CVSS 9.8 的满分级评分,几乎触顶。对于依赖思科设备支撑核心业务的企业来说,这绝不是可以拖到下季度再处理… 2026/8/7 0:01:21
ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am… 2026/8/6 10:11:44
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架… 2026/8/5 7:15:00
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,… 2026/8/5 6:23:51
【YOLOv11模型改进系列】08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 老伙计,咖啡准备好了吗?上篇我们聊了Mosaic+MixUp的“混乱美学”,你肯定已经体会到,手动调数据增强策略就像给模型当保姆——每换一个数据集就要重新试一遍参数。 上周有个做工业质检的朋友找我… 2026/8/5 7:15:27
AI 智能电动窗帘电机高集成、低功耗 MOSFET 精准选型方案 随着 AIoT 与智能家居深度融合,智能电动窗帘电机对功率 MOSFET 提出新要求:微型化、高效率、逻辑电平驱动及静音运行。微碧半导体(VBsemi)基于先进的 Trench 和 SGT 工艺,为您提供覆盖 H桥驱动、电源管理及电机控制的完… 2026/8/4 8:25:47
AI 智能电动窗帘电机智能功率 MOSFET 完整选型方案 随着 AI 技术在智能家居中的普及(如语音控制、光线感应、场景联动),电动窗帘电机对功率 MOSFET 提出更高要求:高效率、低噪音、高集成度。微碧半导体(VBsemi)基于 SGT 及 Trench 工艺,为您提供覆… 2026/8/6 6:12:06