第9章 · 类

面向对象编程入门:创建和使用类、实例属性与方法、继承以及导入类。

知识点 代码示例 章节测验(2 题)

知识点讲解

创建和使用类

类是面向对象编程的核心。类名用驼峰命名法,__init__() 方法在创建新实例时自动运行,用于初始化属性。

class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def sit(self):
print(f"{self.name}坐下了")

通过 my_dog = Dog("旺财", 3) 创建实例,再以 my_dog.sit() 调用方法。

使用类和实例

可以直接修改实例的属性,也可以编写方法在内部更新属性。例如给汽车增加 update_odometer() 方法并加入里程不能回调的逻辑,将数据封装在类内部,符合面向对象的设计思想。

继承与导入类

继承让一个类获得另一个类的所有属性和方法,子类用 class ElectricCar(Car) 定义,用 super().__init__() 调用父类构造方法,还可定义自己的属性和方法、重写父类方法。Python标准库提供了大量可直接导入的类(如 collections.OrderedDictrandom),导入类的语法与导入函数一致。

代码示例

创建类与实例

演示类的定义、__init__与方法。

class Dog:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def sit(self):
        print(f"{self.name} 坐下了")

    def roll_over(self):
        print(f"{self.name} 打滚了")

my_dog = Dog("旺财", 3)
print(f"我的狗叫 {my_dog.name},{my_dog.age}岁")
my_dog.sit()
my_dog.roll_over()

继承

演示子类继承父类与super()。

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer = 0

    def describe(self):
        print(f"{self.year} {self.make} {self.model}")

class ElectricCar(Car):
    def __init__(self, make, model, year):
        super().__init__(make, model, year)
        self.battery = 75

    def describe_battery(self):
        print(f"电池容量 {self.battery} kWh")

my_car = ElectricCar("tesla", "model s", 2024)
my_car.describe()
my_car.describe_battery()