Menu
CoddyTech

类与对象

本课属于 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 表示各自具有独特属性的特定狗。

challenge icon

挑战

简单

补全代码,创建一个 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}")
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

面向对象编程中的所有课

自己练习: Python 在线编译器