标题:从“学生报名”到“小明减肥”——一天速通 Python 面向对象 #Day2

大家好,我是 亦难
昨天刚写完开坑宣言,今天就兑现周更 flag:用 1 天时间把所有 OOP 要点撸了一遍,并做了可运行的 Demo。
如果你也在“知道 class 怎么写,却写不出优雅类”的阶段,这篇一定能帮你把零散知识串成线。


🧭 今日学习路线(脑图速览)

面向对象思想 → 类与对象 → 魔术方法 → 三大特性 → 实战案例


1️⃣ 面向过程 VS 面向对象

  • 面向过程:按步骤报名——“学生提出→缴费→分配班级”。

  • 面向对象:先找主体——学生、机构、教师、班级,再让主体各干各的事。
    一句话总结:先找“谁”,再想“干什么”


2️⃣ 类 & 对象 30 秒上手

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f'{self.name}({self.age})'

p1 = Person('老王', 18)
print(p1)          # 老王(18)
  • __init__:构造函数,给对象“贴标签”。

  • __str__:打印对象时的“颜值担当”。

  • self:谁调用就指向谁,相当于每个对象的「身份证」。


3️⃣ 魔术方法全家桶速查表

方法触发时机常用场景
__init__实例化属性初始化
__str__print(obj)友好打印
__del__对象销毁关闭文件/数据库连接

4️⃣ 三大特性 3 张图秒懂

🔒 封装
class Girl:
    def __init__(self, name):
        self.name = name
        self.__age = 18          # 私有属性

    def get_age(self):           # 访问接口
        return self.__age

意义:把数据藏起来,只留安全窗口。


5️⃣ 实战 1:学员成绩等级

class Student:
    def __init__(self, name, score):
        self.name, self.score = name, score

    def print_grade(self):
        level = '优秀' if self.score >= 90 else \
                '良好' if self.score >= 80 else \
                '中等' if self.score >= 70 else \
                '及格' if self.score >= 60 else '不及格'
        print(f'{self.name}:{self.score}分→{level}')

tom = Student('Tom', 80); tom.print_grade()

6️⃣ 实战 2:小明减肥模拟器

class Person:
    def __init__(self, name, weight):
        self.name, self.weight = name, weight

    def __str__(self):
        return f'{self.name} 目前 {self.weight:.1f} kg'

    def run(self):   self.weight -= 0.1
    def eat(self):   self.weight += 0.2

xm = Person('小明', 75.0)
xm.eat(); xm.run(); print(xm)   # 75.1 kg

属性变状态方法变行为,OOP 的“对象感”一下就出来了。



🚩 明日预告

《继承与多态:为什么“猫”既是“动物”又是“萌宠”?》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值