类与对象
本课属于 Coddy Python 学习旅程的“面向对象编程”单元。第 3 课,共 64 课。
类和对象的用途不同。类是蓝图,而对象是根据蓝图构建出来的东西。
下面是一个类的示例:
class Dog:
# 所有狗共用
species = "Canis familiaris"现在,我们可以使用 Dog.species 直接访问类属性,其中 Dog 是类名:
print(f"Class species: {Dog.species}")
# Class species: Canis familiaris这会访问类本身的数据,而不是任何特定对象的数据。
现在让我们来看看它在对象中是如何工作的。使用 Dog 类创建对象:
dog1 = Dog()
dog2 = Dog()对象可以拥有类没有的独立属性:
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"比较类和对象能做什么:
print(f"Object 1: {dog1.name} is a {dog1.breed}")
print(f"Object 2: {dog2.name} is a {dog2.breed}")
print(f"Both share class attribute: {Dog.species}")输出:
Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiaris关键区别:类 Dog 定义了所有狗的共同点,而对象 dog1 和 dog2 表示各自具有独特属性的特定狗。
挑战
简单补全代码,创建一个 Student 类和两个学生对象。为每个学生添加不同的姓名和成绩。
student.py:在这里定义Student类。driver.py:主执行文件,用于导入并使用你的 Student 类:补全代码,创建一个
Student类和两个学生对象。为每个学生添加不同的姓名和成绩。student1的姓名是"Alice",成绩是"A"。student2的姓名是"Bob",成绩是"B"。
亲手试试
# 导入 Student 类
from student import Student
# TODO: 创建两个学生对象
# TODO: 为 student1 添加属性
# TODO: 为 student2 添加属性
# 打印学生信息
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")这节课包含一个小测验。开始学习即可作答,并记录你的进度。
面向对象编程中的所有课
自己练习: Python 在线编译器