到目前为止,我们写的代码都是「一步一步」告诉计算机做什么。今天,我们来学一种全新的思考方式 —— 面向对象编程(OOP),用代码来描述现实世界的事物!
一、什么是面向对象?
现实世界里,每样东西都有自己的「属性」和「行为」。比如一只狗:
面向对象,就是把现实中的「东西」用代码「画」出来!
二、class —— 创建「类」
class 是「类」的意思,相当于一个「模板」:
class Dog:
"""狗的类"""
def __init__(self, name, age):
self.name = name # 属性:名字
self.age = age # 属性:年龄
def bark(self): # 行为:叫
print("汪汪汪!")
def info(self): # 行为:显示信息
print(f"我叫{self.name},今年{self.age}岁")解释:
__init__ 是「初始化方法」,创建对象时自动调用
self 代表「我自己」,用 self.属性名 访问自己的属性
三、创建对象(实例化)
# 用 Dog 类创建一只叫"旺财"的狗
my_dog = Dog("旺财", 3)
# 调用它的行为
my_dog.bark() # 汪汪汪!
my_dog.info() # 我叫旺财,今年3岁
# 修改它的属性
my_dog.age = 4
my_dog.info() # 我叫旺财,今年4岁汪汪汪!
我叫旺财,今年3岁
我叫旺财,今年4岁
四、实战:学生管理系统
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
def grade(self):
if self.score >= 90:
return "优秀"
elif self.score >= 70:
return "良好"
elif self.score >= 60:
return "及格"
else:
return "不及格"
def introduce(self):
print(f"大家好,我叫{self.name},成绩{self.score}分,评级:{self.grade()}")
# 创建学生对象
s1 = Student("小明", 95)
s2 = Student("小红", 78)
s3 = Student("小刚", 55)
# 调用方法
s1.introduce()
s2.introduce()
s3.introduce()大家好,我叫小明,成绩95分,评级:优秀
大家好,我叫小红,成绩78分,评级:良好
大家好,我叫小刚,成绩55分,评级:不及格
五、类的基础知识速查
| 概念 | 说明 |
| class | 定义一个「类」(模板) |
| __init__ | 创建对象时自动调用的初始化方法 |
| self | 代表「自己」,访问自己的属性和方法 |
| 方法 | 写在类里面的函数,叫「方法」 |
| 实例化 | 用类创建具体对象的过程 |
六、练习题
练习1:创建一个「银行账户」类
class BankAccount:
def __init__(self, owner, balance=0):
self.owner = owner
self.balance = balance
def deposit(self, money):
self.balance += money
print(f"存款{money}元,余额:{self.balance}元")
def withdraw(self, money):
if money > self.balance:
print("余额不足!")
else:
self.balance -= money
print(f"取款{money}元,余额:{self.balance}元")
account = BankAccount("小明", 1000)
account.deposit(500) # 存款500元,余额:1500元
account.withdraw(200) # 取款200元,余额:1300元练习2:创建一个「计数器」类
class Counter:
def __init__(self):
self.count = 0
def add(self):
self.count += 1
def reset(self):
self.count = 0
c = Counter()
c.add(); c.add(); c.add()
print(c.count) # 3
c.reset()
print(c.count) # 0七、今天学到了什么?
-
- class 类:创建对象的模板
-
- __init__:对象创建时自动初始化
-
- self:代表对象自己
-
- 属性:对象的数据(name、age)
-
- 方法:对象的行为(bark、info)
-
- 实例化:用类创建具体对象
-
八、下期预告
基础语法学完了!下节课我们来一个大升级 —— 用 Python 调用 AI 接口,让程序会思考、会对话!
敬请期待:《小学生Python:AI 入门 —— 让程序会思考》
喜欢这篇文章吗?点个「在看」,让更多小朋友学会用面向对象的思维写代码!