第9章 · 类
面向对象编程入门:创建和使用类、实例属性与方法、继承以及导入类。
知识点讲解
创建和使用类
类是面向对象编程的核心。类名用驼峰命名法,__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.OrderedDict、random),导入类的语法与导入函数一致。
代码示例
创建类与实例
演示类的定义、__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()