Python面向对象编程超详细解析|类与对象、属性方法、构造方法、四大特性(零基础看懂)
一、什么是面向对象1.1 面向过程 VS 面向对象面向过程关注步骤、流程按照代码顺序一步步执行适合简单小程序。面向对象(OOP)关注事物、实体把现实事物抽象成程序中的类和对象适合大型项目、复杂业务。Python是纯面向对象语言字符串、列表、数字、函数全部都是对象。1.2 类和对象的关系核心口诀类是模板对象是实例类Class抽象模板描述一类事物的共同特征和行为对象Object根据模板创建的具体实体拥有自己独立的数据举例类 人类有姓名、年龄、会说话、会走路对象 张三、李四、王五具体的某一个人二、类的定义与对象创建2.1 定义类语法class 类名: # 属性特征 # 方法行为规范类名大驼峰命名法首字母大写2.2 最简案例创建学生类# 1. 定义类模板 class Student: # 方法 def study(self): print(学生正在学习...) # 2. 创建对象实例化 stu1 Student() stu2 Student() # 3. 对象调用方法 stu1.study() stu2.study()此时 stu1、stu2 是两个独立的对象。三、属性对象的特征数据属性就是事物的特征数据例如姓名、年龄、性别、价格、id。3.1 动态绑定属性class Student: def study(self): print(学生学习中) stu1 Student() # 给对象单独添加属性 stu1.name 张三 stu1.age 18 print(stu1.name) print(stu1.age)缺点每个对象需要手动赋值麻烦、不统一。四、构造方法 __init__重中之重__init__ 是类的初始化构造方法创建对象时自动触发执行用于统一初始化对象属性。4.1 核心特点创建对象时自动调用无需手动执行用于给对象初始化属性self代表当前对象本身4.2 标准完整案例class Student: # 构造方法初始化属性 def __init__(self, name, age): self.name name # 对象姓名 self.age age # 对象年龄 # 自定义方法 def show_info(self): print(f姓名{self.name}年龄{self.age}) # 创建对象并传参 stu1 Student(张三, 18) stu2 Student(李四, 20) stu1.show_info() stu2.show_info()4.3 self 到底是什么self 就是当前实例对象自己。 谁调用方法self 就指向谁。 作用区分不同对象的独有数据。五、类属性 和 对象属性5.1 对象属性写在 __init__ 中每个对象独有互不影响。5.2 类属性写在类内部、方法外部所有对象共享。class Student: # 类属性全局共享 school 北京大学 def __init__(self, name): # 对象属性自己独有 self.name name stu1 Student(张三) stu2 Student(李四) print(stu1.school) print(stu2.school)六、面向对象两大核心属性 方法属性描述事物「有什么」静态特征方法描述事物「能做什么」动态行为面向对象编程本质将数据和行为封装到一个类中。七、面向对象四大特性面试必背1. 封装将属性和方法打包到类中隐藏内部细节只暴露可用接口安全、简洁。2. 继承子类继承父类复用代码不用重复写重复逻辑。3. 多态不同子类调用同一个方法表现出不同效果提高代码灵活性。4. 抽象提取事物共同特征忽略细节提炼通用模板。八、面向过程 vs 面向对象总结面向过程注重过程、步骤、逻辑流水适合简单脚本面向对象注重实体、模块、封装复用适合大型项目九、全文总结类是模板对象是实例先定义类、再创建对象__init__构造方法用于初始化对象属性创建对象自动执行self 代表当前对象用来绑定对象独有数据属性描述特征方法描述行为面向对象四大特性封装、继承、多态、抽象。