# 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岁 ```