Python面向函数转面向对象实例分析
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,本文小编为大家详细介绍"Python面向函数转面向对象实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"Python面向函数转面向对象实例分析"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
千家信息网最后更新 2024年11月14日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安全错误
数据库的锁怎样保障安全
休宁网络安全费用
服务器主机硬盘可以是固态硬盘吗
修复中的数据库没有核查出错误
芯片技术为什么是基于数据库
dell服务器板载管理
网络安全的儿童画
2019年网络安全市场
网络安全怎样检测
九零后互联网科技有限公司
方舟起源千倍服务器
奇安信主办的国内网络安全大会
宾阳县软件开发
计算机四级网络技术难考吗
图书馆数据库的万方论文咋看
上海互联网科技人才
数据库基础教程第二版考试
网络安全病毒纪录片
lag数据库
sybase数据库监控脚本
软件开发者判决案例
数据库两边同时更新一个表
朴赛服务器分区
服务器对计算机进行管理
遥控软件开发
南京直销软件开发公司
服务器磁盘阵列方式raid
七格互联网科技股份有限公司
有关网络安全的辩题
德儿网络技术有限公司
思科和苹果网络安全