Python 进阶 01 面向对象

Python  面向对象编程详解

概述

面向对象编程(OOP)是一种编程思想,它以对象为基础,构建在面向过程编程之上。OOP通过将复杂的问题分解成多个简单的对象,使得代码更加模块化、易于理解和维护。面向对象编程的三大思想特点包括:

  1. 把复杂的事情简单化:通过将大问题分解成小问题,每个小问题由对象来处理,从而简化整个问题的解决过程。
  2. 把程序员从执行者变成指挥者:程序员不再是直接编写具体的执行代码,而是设计对象间的交互逻辑,让对象自动完成指定任务。
  3. 更符合人们的思考习惯:现实世界中的事物往往以对象的形式存在,面向对象编程能够更直观地模拟现实世界,使得编程更加贴近人类思维。

总结而言,面向对象编程的核心思想是“万物皆对象”。

相关名词
  • 类(Class):类和对象是面向对象编程中的核心概念。类是对具有相同属性和行为的对象的抽象描述,是一个看不见、摸不着的抽象概念。
  • 对象(Object):对象是类的具体体现或实例。每个对象都拥有类定义的属性和行为。
  • 属性(Attribute):属性用于描述对象的外在特征,是名词性质的。例如,人的姓名、年龄、性别等都是属性。
  • 行为(Behavior):行为表示对象能够执行的操作,是动词性质的。例如,人能够吃饭、睡觉、学习等。
基本格式

定义类的格式

class 类名:  
    # 属性  
      
    # 行为(方法)  
  
class 类名():  
    pass  
  
class 类名(object):  
    pass

如何使用类中的成员

  • 类内:使用self.的方式调用成员。
  • 类外:首先创建类的对象,然后使用对象名.的方式调用属性或方法。

self

  • 概述:self是Python内置的一个属性,用于表示类实例的引用。
  • 特点/作用:在类的方法中,self代表调用该方法的对象。通过self可以访问对象的属性和其他方法。
魔法方法

魔法方法是Python内置的函数,它们在特定的场景下会自动被调用,无需手动调用。

  • __init__():用于初始化对象的属性值。在创建对象时自动调用。
  • __str__():用于快速打印对象的各个属性值。在直接打印对象时自动调用。
  • __del__():删除对象时会自动调用,用于释放空间。
三大特征
  1. 继承(Inheritance)
    • 概述:继承是面向对象编程的一个重要特征,它允许我们定义一个类(父类)来包含多个类(子类)共有的属性和行为。子类可以继承父类的属性和方法,也可以添加或重写自己的属性和方法。
    • 格式:class 子类名(父类名):
    • 好处:提高代码的复用性和可维护性。
    • 弊端:增加了类之间的耦合性。
    • 几种写法:单继承、多继承。
  2. 封装(Encapsulation)
    • 概述:封装是隐藏对象的属性和实现细节,仅对外提供公共的访问方式。
    • 好处:提高代码的安全性和复用性。
    • 私有化:使用双下划线(__)前缀的属性和方法只能在类内部访问,外界需要通过公共的访问方式(如get_xxx()set_xxx()方法)来访问。
  3. 多态(Polymorphism)
    • 概述:多态是指同一个事物在不同时刻表现出来的不同形态或状态。在Python中,多态体现为同一个函数接收不同参数时,能够表现出不同的行为。
    • 前提:继承、方法重写、父类引用指向子类对象。
    • 好处:提高代码的可维护性,实现调用者和业务(被调用者)的分离。
几个名词的深入
  • 属性
    • __dict__属性:Python内置属性,每个对象都默认拥有,可以将对象的属性和属性值封装成字典形式。
    • 类属性与对象属性:类属性属于类本身,所有对象共享;对象属性属于单个对象。
  • 方法
    • 静态方法(@staticmethod):属于每个对象的方法,可以共享,但无特殊参数要求。
    • 类方法(@classmethod):属于类的方法,可以被每个对象共享,调用时必须传入类的引用作为第一个参数。
综合案例

面向对象编程在实际开发中有着广泛的应用,以下是一些常见的综合案例:

  1. 汽车类:包含品牌、型号、颜色等属性,以及启动、行驶等行为。
  2. 手机类:包含品牌、型号、电量等属性,以及拨打电话、发送短信等行为。
  3. 减肥案例:通过面向对象的方式模拟减肥过程,包括设置目标体重、记录饮食、运动等行为。
  4. 烤地瓜案例:模拟烤地瓜的过程,包括选择地瓜、设置温度、烤制时间等行为。
  5. 摊煎饼果子案例:模拟摊煎饼果子的过程,包括准备食材、制作煎饼、加料等行为。
  6. 战斗机案例:模拟战斗机的属性和行为,如起飞、降落、攻击等。
  7. 空调案例:模拟空调的控制过程,包括设置温度、风速、模式等行为。
  8. 面向对象版-学生管理系统:通过面向对象的方式实现一个学生管理系统,包括学生信息的增删改查等功能。

通过这些案例,可以更深入地理解面向对象编程的思想和实际应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值