Python 类(Class)完全指南:语法、技巧与实战案例
一、为什么需要 Class 类?
用 Python 写代码时,我们一开始常常用函数(def)来封装逻辑,但遇到复杂问题就会力不从心 —— 比如要管理多个 “学生” 信息(姓名、成绩、选课),如果用变量存储,会散落一堆;用列表 / 字典,又难统一操作逻辑。
而类(Class) 就像一个 “模板”,能把数据(属性)和操作数据的逻辑(方法)打包在一起,让代码更整洁、可复用、易维护。简单说:类是创建对象的 “蓝图”,对象是类的 “实例”—— 比如 “学生” 是类,“小明(姓名:小明,成绩:90)” 就是这个类的对象。
二、Class 类基础语法:从定义到使用
1. 定义一个类
用class关键字定义类,类名通常首字母大写(规范),括号里可指定父类(默认是object,即所有类的基类)。
# 定义一个“学生”类 class Student: # 初始化方法:创建对象时自动调用,给对象赋初始属性 def __init__(self, name, score): # self:指代当前创建的对象,必须作为第一个参数 self.name = name # 给对象添加“姓名”属性 self.score = score # 给对象添加“成绩”属性 # 自定义方法:操作对象属性的逻辑 def show_info(self): # 打印学生信息 print(f"姓名:{self.name},成绩:{self.score}") def get_grade(self): # 根据成绩判断等级 if self.score >= 90: return "A" elif self.score >= 80: return "B" else: return "C"2. 创建对象(实例化类)
定义好类后,像调用函数一样创建对象,传入__init__方法需要的参数(除了 self)。
# 创建第一个学生对象:小明 xiaoming = Student("小明", 92) # 创建第二个学生对象:小红 xiaohong = Student("小红", 85)3. 访问对象的属性和方法
用 “对象。属性”“对象。方法 ()” 的方式操作对象。
# 访问属性 print(xiaoming.name) # 输出:小明 print(xiaohong.score) # 输出:85 # 调用方法 xiaoming.show_info() # 输出:姓名:小明,成绩:92 print(xiaohong.get_grade()) # 输出:B # 修改属性 xiaoming.score = 95 xiaoming.show_info() # 输出:姓名:小明,成绩:95三、Class 类核心特性:让代码更强大
1. 封装:隐藏复杂逻辑
封装就是把属性和方法 “藏” 在类里,只暴露必要的接口(方法),外部不用关心内部实现。比如get_grade方法,外部调用时只需要知道传入对象,不用管判断逻辑。
2. 继承:复用已有代码
继承允许一个类(子类)继承另一个类(父类)的属性和方法,减少重复代码。子类可以新增属性 / 方法,也可以重写父类方法。
# 父类:Person(人) class Person: def __init__(self, name, age): self.name = name self.age = age def eat(self): print(f"{self.name}在吃饭") # 子类:Student(学生)继承Person class Student(Person): # 重写__init__方法:新增score属性 def __init__(self, name, age, score): # 调用父类的__init__方法,复用姓名、年龄属性 super().__init__(name, age) self.score = score # 新增方法:学习 def study(self): print(f"{self.name}在学习,成绩:{self.score}") # 创建学生对象 xiaoli = Student("小李", 18, 88) xiaoli.eat() # 继承父类方法,输出:小李在吃饭 xiaoli.study() # 子类新增方法,输出:小李在学习,成绩:883. 多态:同一接口,不同实现
多态是指子类重写父类方法后,不同子类对象调用同一方法会有不同表现。
# 父类:Animal class Animal: def speak(self): pass # 空实现,由子类重写 # 子类:Dog class Dog(Animal): def speak(self): print("汪汪汪") # 子类:Cat class Cat(Animal): def speak(self): print("喵喵喵") # 统一调用函数 def make_speak(animal): animal.speak() # 多态体现:不同对象调用同一方法,结果不同 dog = Dog() cat = Cat() make_speak(dog) # 输出:汪汪汪 make_speak(cat) # 输出:喵喵喵四、实战案例:用 Class 管理图书信息
用类来实现一个简单的 “图书管理系统”,包含添加图书、查询图书、删除图书功能。
class BookManager: def __init__(self): # 用列表存储图书信息,每个元素是字典 self.books = [] # 添加图书 def add_book(self, book_id, title, author): # 判断图书是否已存在 for book in self.books: if book["book_id"] == book_id: print("该图书ID已存在!") return self.books.append({"book_id": book_id, "title": title, "author": author}) print("图书添加成功!") # 查询所有图书 def show_all_books(self): if not self.books: print("暂无图书信息!") return print("=== 所有图书信息 ===") for book in self.books: print(f"ID:{book['book_id']},书名:{book['title']},作者:{book['author']}") # 根据ID删除图书 def delete_book(self, book_id): for book in self.books: if book["book_id"] == book_id: self.books.remove(book) print("图书删除成功!") return print("未找到该图书ID!") # 测试代码 if __name__ == "__main__": manager = BookManager() manager.add_book(1, "Python编程:从入门到实践", "埃里克·马瑟斯") manager.add_book(2, "流畅的Python", "卢西亚诺·拉马略") manager.show_all_books() manager.delete_book(1) manager.show_all_books()五、学习总结
1.类是 Python 面向对象编程的核心,核心作用是封装、继承、多态;
2.定义类用class,初始化属性用__init__,方法第一个参数必须是self;
3.用类可以把复杂逻辑拆分成独立的 “对象”,让代码更易维护、复用性更强;
4.入门建议:先从定义简单类、创建对象开始,再逐步学习继承和多态,多写实战案例巩固。