Python面向函数转面向对象实例分析
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"Python面向函数转面向对象实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"Python面向函数转面向对象实例分析"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
千家信息网最后更新 2026年11月01日Python面向函数转面向对象实例分析
本文小编为大家详细介绍"Python面向函数转面向对象实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"Python面向函数转面向对象实例分析"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
我们今天有两个目的,第一就是将之前面向函数开发的学生信息库功能转变为面向对象开发的学生信息库功能;第二就是要实现批量的增删改查及模糊查找的功能。
代码示例如下:
# coding:utf-8""" @Author:Neo @Date:2020/1/15 @Filename:students_info.py @Software:Pycharm"""class StudentInfo(object): def __init__(self, students): self.students = students def get_by_id(self, student_id): return self.students.get(student_id) def get_all_students(self): for id_, value in self.students.items(): print('学号:{}, 姓名:{}, 年龄:{}, 性别:{}, 班级:{}'.format( id_, value['name'], value['age'], value['sex'], value['class_number'] )) return self.students def add(self, **student): check = self.check_user_info(**student) if check != True: print(check) return self.__add(**student) def adds(self, new_students): for student in new_students: check = self.check_user_info(**student) if check != True: print(check, student.get('name')) continue self.__add(**student) def __add(self, **student): new_id = max(self.students) + 1 self.students[new_id] = student def delete(self, student_id): if student_id not in self.students: print('{} 并不存在'.format(student_id)) else: user_info = self.students.pop(student_id) print('学号是{}, {}同学的信息已经被删除了'.format(student_id, user_info['name'])) def deletes(self, ids): for id_ in ids: if id_ not in self.students: print(f'{id_} 不存在学生库中') continue student_info = self.students.pop(id_) print(f'学号{id_} 学生{student_info["name"]} 已被移除') def update(self, student_id, **kwargs): if student_id not in self.students: print('并不存在这个学号:{}'.format(student_id)) check = self.check_user_info(**kwargs) if check != True: print(check) return self.students[student_id] = kwargs print('同学信息更新完毕') def updates(self, update_students): for student in update_students: id_ = list(student.keys())[0] if id_ not in self.students: print(f'学号{id_} 不存在') continue user_info = student[id_] check = self.check_user_info(**user_info) if check != True: print(check) continue self.students[id_] = user_info print('所有用户信息更新完成') def search_users(self, **kwargs): values = list(self.students.values()) key = None value = None result = [] if 'name' in kwargs: key = 'name' value = kwargs[key] elif 'sex' in kwargs: key = 'sex' value = kwargs['sex'] elif 'class_number' in kwargs: key = 'class_number' value = kwargs[key] elif 'age' in kwargs: key = 'age' value = kwargs[key] else: print('没有发现搜索的关键字') return for user in values: # [{name, sex, age, class_number}, {}] if value in user[key]: result.append(user) return result def check_user_info(self, **kwargs): if 'name' not in kwargs: return '没有发现学生姓名' if 'age' not in kwargs: return '缺少学生年龄' if 'sex' not in kwargs: return '缺少学生性别' if 'class_number' not in kwargs: return '缺少学生班级' return Truestudents = { 1: { 'name': 'Neo', 'age': 18, 'class_number': 'A', 'sex': 'boy' }, 2: { 'name': 'Jack', 'age': 16, 'class_number': 'B', 'sex': 'boy' }, 3: { 'name': 'Lily', 'age': 18, 'class_number': 'A', 'sex': 'girl' }, 4: { 'name': 'Adem', 'age': 18, 'class_number': 'C', 'sex': 'boy' }, 5: { 'name': 'HanMeiMei', 'age': 18, 'class_number': 'B', 'sex': 'girl' }}if __name__ == '__main__': student_info = StudentInfo(students) user = student_info.get_by_id(1) student_info.add(name='Marry', age=16, class_number='A', sex='girl') users = [ {'name': 'Atom', 'age': 17, 'class_number': 'B', 'sex': 'boy'}, {'name': 'Lucy', 'age': 18, 'class_number': 'C', 'sex': 'girl'} ] student_info.adds(users) student_info.get_all_students() print('------------------------------------------------------') # >>> 执行结果如下:# >>> 学号:1, 姓名:Neo, 年龄:18, 性别:boy, 班级:A# >>> 学号:2, 姓名:Jack, 年龄:16, 性别:boy, 班级:B# >>> 学号:3, 姓名:Lily, 年龄:18, 性别:girl, 班级:A# >>> 学号:4, 姓名:Adem, 年龄:18, 性别:boy, 班级:C# >>> 学号:5, 姓名:HanMeiMei, 年龄:18, 性别:girl, 班级:B# >>> 学号:6, 姓名:Marry, 年龄:16, 性别:girl, 班级:A# >>> 学号:7, 姓名:Atom, 年龄:17, 性别:boy, 班级:B# >>> 学号:8, 姓名:Lucy, 年龄:18, 性别:girl, 班级:C# >>> ------------------------------------------------------ student_info.deletes([7, 8]) student_info.get_all_students() print('------------------------------------------------------')# >>> 执行结果如下:# >>> ------------------------------------------------------# >>> 学号7 学生Atom 已被移除# >>> 学号8 学生Lucy 已被移除# >>> 学号:1, 姓名:Neo, 年龄:18, 性别:boy, 班级:A# >>> 学号:2, 姓名:Jack, 年龄:16, 性别:boy, 班级:B# >>> 学号:3, 姓名:Lily, 年龄:18, 性别:girl, 班级:A# >>> 学号:4, 姓名:Adem, 年龄:18, 性别:boy, 班级:C# >>> 学号:5, 姓名:HanMeiMei, 年龄:18, 性别:girl, 班级:B# >>> 学号:6, 姓名:Marry, 年龄:16, 性别:girl, 班级:A# >>> ------------------------------------------------------ student_info.updates([ {1: {'name': 'Jone', 'age': 18, 'class_number': 'A', 'sex': 'boy'}}, {2: {'name': 'Nike', 'age': 18, 'class_number': 'A', 'sex': 'boy'}} ]) student_info.get_all_students() print('------------------------------------------------------') # >>> 执行结果如下:# >>> ------------------------------------------------------# >>> 所有用户信息更新完成# >>> 学号:1, 姓名:Jone, 年龄:18, 性别:boy, 班级:A# >>> 学号:2, 姓名:Nike, 年龄:18, 性别:boy, 班级:A# >>> 学号:3, 姓名:Lily, 年龄:18, 性别:girl, 班级:A# >>> 学号:4, 姓名:Adem, 年龄:18, 性别:boy, 班级:C# >>> 学号:5, 姓名:HanMeiMei, 年龄:18, 性别:girl, 班级:B# >>> 学号:6, 姓名:Marry, 年龄:16, 性别:girl, 班级:A# >>> ------------------------------------------------------ result = student_info.search_users(name='d') print(result) print('------------------------------------------------------') # >>> 执行结果如下:# >>> [{'name': 'Adem', 'age': 18, 'class_number': 'C', 'sex': 'boy'}] result = student_info.search_users(name='小') print(result) print('------------------------------------------------------')# >>> 执行结果如下:# >>> ------------------------------------------------------# >>> []# >>> ------------------------------------------------------ result = student_info.search_users(name='') print(result) result = student_info.search_users(name='小') print(result) print('------------------------------------------------------')# >>> 执行结果如下:# >>> ------------------------------------------------------[{'name': 'Jone', 'age': 18, 'class_number': 'A', 'sex': 'boy'}, {'name': 'Nike', 'age': 18, 'class_number': 'A', 'sex': 'boy'}, {'name': 'Lily', 'age': 18, 'class_number': 'A', 'sex': 'girl'}, {'name': 'Adem', 'age': 18, 'class_number': 'C', 'sex': 'boy'}, {'name': 'HanMeiMei', 'age': 18, 'class_number': 'B', 'sex': 'girl'}, {'name': 'Marry', 'age': 16, 'class_number': 'A', 'sex': 'girl'}]# >>> [] result = student_info.search_users(name='') print(result)读到这里,这篇"Python面向函数转面向对象实例分析"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
学号
姓名
年龄
性别
班级
学生
信息
结果
函数
对象
C#
实例
实例分析
分析
功能
文章
更新
信息库
内容
同学
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会主任
互联网科技活动banner
互联网科技社
美国互联网科技
互联网 新科技
互联网养老 桔豆科技
顺网科技2021年互联网排名
衡水科技产业互联网平台
重庆威客帮互联网科技
洛阳昕诺飞互联网科技有限公司
洛阳共同富裕互联网科技有限公司
无锡工业互联网科技有限公司
上海京穆互联网科技有限公司
山东星卡互联网科技有限公司官网
互联网公司高科技产品
广东工业互联网大赛深圳学泰科技
珠海东科互联网科技有限公司
玉溪新华互联网科技怎么选
宁波允成互联网科技有限公司
小牛互联网科技有限公司地址
喔噻互联网科技有限公司
高科技与互联网
互联网科技缩写
互联网科技博主是什么意思
青岛科技大学互联网大赛研究生
未来五年的互联网科技
35岁以上互联网科技行业
上海同邻互联网科技有限公司规模
互联网科技博主张洲
重庆科技产业互联网有哪些