Add Day_11: 面向对象(一)类与实例

This commit is contained in:
2026-08-22 01:09:35 +08:00
parent 020ec0bda5
commit f9d1eadfc8
+88
View File
@@ -0,0 +1,88 @@
# Day_11 · 面向对象(一):类与实例
> 预计耗时:25~30 分钟
> Django 最核心的东西是"用类表示数据"(ORM)。今天第一次接触**类**——先别慌,照抄、运行、改改看。
## 今日知识点
- **类**(class)是"图纸",**实例**(instance)是按图纸造出来的"实物"
- `__init__`:造实例时自动执行的"初始化"方法,用来存数据
- `self`:代表"这个实例自己",`self.name` 就是"这个实例的名字"
- 实例方法:类里面定义的函数,通过 `实例.方法()` 调用
## 先学(教程)
- 菜鸟教程("面向对象"一节,先看到"创建实例"为止):https://www.runoob.com/python3/python3-class.html
- B站黑马教程(看讲"面向对象、类"的几集):https://www.bilibili.com/video/BV1qW4y1a7fU/
## 任务(后做)
新建 `day11.py`:
1. 定义一只狗:
```python
class Dog:
def __init__(self, name, breed):
self.name = name # 狗的名字
self.breed = breed # 狗的品种
def bark(self):
print(f"{self.name}:汪!")
d1 = Dog("旺财", "金毛")
d2 = Dog("小黑", "柯基")
d1.bark()
d2.bark()
```
2. 加一个方法,打印自我介绍:
```python
# 在 Dog 类里再加一个方法:
def intro(self):
print(f"我是{self.breed},叫{self.name}")
d1.intro()
```
3. **进阶(加分)**:照葫芦画瓢,自己定义一个 `User` 类,字段 `name`、`age`,
方法 `greet()` 打印 `你好,我叫xxx,今年xx岁`,创建两个用户调用。
(提示:这正是 Django 里 `class User(models.Model)` 的雏形。)
## 完成标准
- [ ] 两只狗都能叫、都能自我介绍
- [ ] 能说出 `self` 是干嘛的
- [ ] (进阶)User 类完成
**提交方式**:把 `day11.py` 代码贴在当日工单评论里。
## 参考解答(先做再看)
```python
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
print(f"{self.name}:汪!")
def intro(self):
print(f"我是{self.breed},叫{self.name}")
d1 = Dog("旺财", "金毛")
d2 = Dog("小黑", "柯基")
d1.bark() # 旺财:汪!
d2.bark() # 小黑:汪!
d1.intro() # 我是金毛,叫旺财
# 进阶
class User:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"你好,我叫{self.name},今年{self.age}岁")
u1 = User("张三", 18)
u1.greet() # 你好,我叫张三,今年18岁
```