零基础学AI人工智能:6.1 python进阶之面向对象

张开发
2026/4/18 14:40:04 15 分钟阅读

分享文章

零基础学AI人工智能:6.1 python进阶之面向对象
在前面的Python基础语法系列中我们已经完整掌握了变量、数据类型、流程控制、容器类型等核心基础能够编写简单的脚本和数据处理程序。而在真实的AI开发场景中我们需要管理复杂的模型、数据集、训练流程和工具函数单纯的面向过程编程会导致代码冗余、维护困难、复用性差。面向对象编程正是解决这些问题的核心思想它将数据和操作数据的方法封装在一起以“对象”为单位组织代码是Python进阶的必经之路也是编写大型AI项目、开源框架的基础。今天是Python进阶的第一篇我们将系统讲解面向对象编程的核心概念、三大特征、基础格式与特殊写法全程无代码仅从底层逻辑和使用场景出发帮大家建立面向对象的编程思维。一、面向对象的核心概述1.1什么是面向对象面向对象是一种编程思想它以“对象”为基础来组织和编写程序将数据和操作数据的方法封装在一起把整个程序看作是由多个相互协作的对象组成的集合。这种编程思想有三个核心特点更符合人类的思考习惯将现实世界中的事物抽象为程序中的对象把复杂的程序管理简单化将大问题拆解为多个小对象分别处理把人从代码的执行者变成指挥者通过调用对象的方法完成任务。1.2面向对象的三大特征面向对象编程有三大核心特征是其区别于面向过程编程的关键封装隐藏对象的内部细节只对外提供统一的访问接口继承子类可以继承父类的属性和方法实现代码的复用多态同一个方法在不同的对象上可以有不同的实现提高代码的灵活性。1.3面向对象的核心概念面向对象中有两个最基础、最核心的概念类是对象的模板描述了一类对象共同的属性和行为。比如“学生”是一个类它描述了所有学生都有的姓名、年龄等属性以及学习、考试等行为。对象是类的实例是类的具体体现。比如“张三”是“学生”类的一个具体对象拥有自己的姓名、年龄等具体属性值。除此之外还有两个衍生概念属性描述事物的外在特征是抽象的概念看不见摸不着。比如学生的姓名、年龄都是属性。方法描述事物的行为是事物能够做的事情。比如学生的学习、吃饭都是方法。二、面向对象三大特征详解2.1封装封装是面向对象的基础其核心思想是隐藏对象的属性和实现细节仅对外提供一个公共的访问方式。封装有三个核心好处简化代码的使用使用者无需了解内部实现细节只需调用公共接口即可提高代码的安全性防止外部随意修改对象的内部数据提高代码的复用性封装好的方法可以被多个对象重复调用。封装的实现方式分为两步将对象的属性私有化使其只能在类的内部被访问提供公共的访问方法外部通过这些方法来获取或修改属性的值。封装有一个核心特点私有化的属性只能在类的内部被直接访问外部必须通过类提供的公共接口才能访问。2.2继承继承是实现代码复用的核心手段其核心思想是子类可以继承父类的所有属性和方法同时也可以根据自己的需求添加新的属性和方法或者重写父类已有的方法。继承有两个核心好处大幅提高代码的复用性避免重复编写相同的代码增强了代码的耦合性使得开发和维护的效率大幅提升。继承的实现方式是在定义子类时指定要继承的父类。子类继承父类后可以直接使用父类中所有非私有化的属性和方法。继承有以下几个核心特点子类可以拥有自己独有的属性和方法实现功能的扩展子类可以重写父类的方法即定义一个和父类方法名相同的方法调用时会优先执行子类的方法Python支持多继承即一个子类可以同时继承多个父类。在多继承场景中有一个重要的概念是方法解析顺序MRO它规定了当多个父类有同名方法时子类调用方法的顺序遵循从左到右的查找规则。如果子类在重写父类方法后还需要调用父类的原方法可以使用super方法来实现。2.3多态多态是面向对象的高级特征其核心思想是同一个事物在不同的场景中可以表现出不同的形态。在程序中多态体现为父类的引用可以指向子类的对象调用同一个方法时会根据对象的实际类型执行不同的实现。多态有三个核心好处增强了代码的灵活性同一个接口可以适配不同的对象提高了代码的扩展性新增子类时无需修改原有代码父类的引用可以作为函数的参数传递这样可以接收任意的子类对象。多态也有一个弊端父类的引用无法直接访问子类中独有的属性和方法。实现多态需要满足三个前提条件要有继承关系即存在父类和子类要有方法重写即子类重写了父类的方法要有父类引用指向子类对象。在多态的基础上还有一个重要的概念是抽象类没有方法体的方法叫做抽象方法包含抽象方法的类叫做抽象类抽象类不能被实例化只能作为父类被继承抽象类的作用是充当父类规定子类必须实现的方法规范具体的实现由子类来完成。三、面向对象的格式相关3.1类的定义格式定义类需要使用特定的关键字类名遵循大驼峰命名法即每个单词的首字母都大写其余字母小写。类的内部包含属性和方法两部分。3.2如何访问类中的成员访问类中的属性和方法需要分为两步创建类的对象即类的实例通过对象来访问类的属性和方法。3.3如何定义和访问属性属性的定义位置在类的内部、方法的外部。访问属性的方式是通过对象名加上属性名来访问。3.4 self关键字self是面向对象中非常重要的一个关键字它代表当前正在调用方法的对象。哪个对象调用了方法方法内部的self就代表哪个对象。self的核心作用是在方法的内部访问对象的属性和其他方法。3.5魔法方法魔法方法是Python中一类特殊的方法它们有两个核心特点命名格式固定以双下划线开头和结尾无需手动调用在特定的场景下会自动触发执行。常用的魔法方法有三种初始化方法在创建对象的时候自动触发用于给对象的属性赋初始值析构方法在对象被销毁的时候自动触发用于释放资源字符串方法在打印对象的时候自动触发用于返回对象的字符串描述。四、面向对象的几种特殊写法4.1对象属性对象属性是定义在对象方法内部的属性它只属于当前对象不同对象之间的对象属性互不影响。访问对象属性的方式是通过对象名加上属性名来访问。4.2类属性类属性是定义在类的内部、方法的外部的属性它属于整个类被所有的对象共享。访问类属性的推荐方式是通过类名加上属性名来访问。4.3类方法类方法是属于类的方法它需要使用特定的装饰器来修饰。类方法的第一个参数是cls代表当前的类。类方法的应用场景是函数内部不使用self但需要使用类的时候。4.4静态方法静态方法是一种普通的函数它需要使用特定的装饰器来修饰。静态方法的参数中不需要写self和cls。静态方法的应用场景是函数内部既不使用self也不使用cls的时候。五、逻辑图

更多文章