Menu
CoddyTech

self 参数

本课属于 Coddy Python 学习旅程的“面向对象编程”单元。第 4 课,共 64 课。

self 参数指的是方法中的类实例。它让你可以访问和修改当前对象的属性。

下面是一个使用 self 的类及其方法示例:

class Car:
    def honk(self):
        print("Beep beep!")
    
    def describe(self):
        print(f"I am a {self.color} {self.model}")

在方法定义中,self 参数必须始终放在第一个位置。它会告诉方法当前使用的是哪个具体对象。

创建一个汽车对象并添加属性:

my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"

现在调用这些方法:

my_car.honk()
my_car.describe()

输出:

Beep beep!
I am a Red Sedan

调用 my_car.describe() 时,你不需要为 self 传入任何内容,Python 会自动将 my_car 作为 self 参数传入。

幕后发生的事情是这样的:

# 当你这样写时:
my_car.describe()

# Python 实际上会这样做:
Car.describe(my_car)

self 参数让每个对象都能访问自己的数据。没有 self,方法就不知道该使用哪个对象的属性。

重点:定义方法时,始终将 self 作为第一个参数,但调用方法时绝不要传入它,Python 会自动处理。

challenge icon

挑战

简单

在 car.py 中完善 Car 类,添加一个名为 display_info 的方法,该方法使用 self 参数,按以下格式打印汽车的年份、品牌和型号:

“This car is a [year] [make] [model]”。

  • car.py:包含 Car 类的定义,你将在其中添加 display_info 方法
  • driver.py:主执行文件,用于导入并使用 Car 类

driver.py 文件会导入你的 Car 类并创建实例,以测试你的实现。确保从驱动文件调用该方法时,它能正常工作。

亲手试试

from car import Car

# 测试你的代码
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"

my_car.display_info()  # 应该输出:This car is a 2020 Toyota Corolla
quiz icon自我测试

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

面向对象编程中的所有课

自己练习: Python 在线编译器