返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现JavaBeans流程详解
  • 165
分享到

Python实现JavaBeans流程详解

Python JavaBeansPython实现JavaBeans 2023-01-14 18:01:31 165人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录场景JavaBeans in python在JavaBeans中有这样的一个描述:当一些信息需要使用类似于字典嵌套字典再嵌套列表这种很深的结构来储存的时候,请改用类来储存。实际上

在JavaBeans中有这样的一个描述:当一些信息需要使用类似于字典嵌套字典再嵌套列表这种很深的结构来储存的时候,请改用类来储存。实际上,这样的思想也可以用于Python中。

场景

在Python中,以前可能会这样写嵌套字典结构

school_list = [{
    'school_name': 'SZ',
    'class_id': '001',
    'stu_num': 45,
    'student':{
        'stu_id': '001',
        'stu_name': 'xiaohong',
        'stu_score': 90
    }
},
{
    'school_name': 'Fxxking U',
    'class_id': '002',
    'stu_num': 40,
    'student':{
        'stu_id': '002',
        'stu_name': 'xiaobai',
        'stu_score': 98
    }
}]

而当我们要访问比较深层结构中的数据时可能要这样:

print(school_list[0]['student']['stu_id'])

这样在取用时未免太麻烦,而且一旦嵌套结构越深层,取用时就越麻烦。

JavaBeans in Python

如果借鉴JavaBeans的思维,将此用类实现,会是以下这样:

# School.py
class School(object):
    def __init__(self,school_name='',class_id='',stu_num=0,student=None) -> None:
        self._school_name = school_name
        self._class_id = class_id
        self._stu_num = stu_num
        self._student = student
    @property
    def school_name(self):
        return self._school_name
    @school_name.setter
    def school_name(self,new_name):
        self._school_name = new_name
    @property
    def class_id(self):
        return self._class_id
    @class_id.setter
    def class_id(self,new_id):
        self._class_id = new_id
    @property
    def stu_num(self):
        return self._stu_num
    @stu_num.setter
    def stu_num(self,new_num):
        self._stu_num = new_num
    @property
    def student(self):
        return self._student
    @student.setter
    def student(self,new_student):
        self._student = new_student
# Student.py
class Student(object):
    def __init__(self,stu_id='',stu_name='',stu_score=0) -> None:
        self._stu_id = stu_id
        self._stu_name = stu_name
        self._stu_score = stu_score
    @property
    def stu_id(self):
        return self._stu_id
    @stu_id.setter
    def stu_id(self,new_id):
        self._stu_id = new_id
    @property
    def stu_name(self):
        return self._stu_name
    @stu_name.setter
    def stu_name(self,new_name):
        self._stu_name = new_name
    @property
    def stu_score(self):
        return self._stu_score
    @stu_score.setter
    def stu_score(self,new_score):
        self._stu_score = new_score

我们将原有的嵌套字典数据转换为两个类实现,且分别在School.py与Student.py两个文件中,在类中我们对原本的数据以装饰器粉饰为属性从而使其可以进行读取与修改。这样一来,我们就可以用类属性的方式去访问我们想要的数据。

程序代码:

from School import School
from Student import Student
student_007 = Student(stu_id='007',stu_name='零零漆',stu_score=99)
school_Princeton = School(school_name='Princeton U',class_id='005',stu_num=1000,student=student_007)
student_qnc = Student(stu_id='250',stu_name='千年虫',stu_score=60)
school_Fuxxking = School(school_name='Fuxxking U',class_id='009',stu_num=500,student=student_qnc)
school_list = [school_Princeton,school_Fuxxking]
for i in school_list:
    print(i.school_name)
    print(i.class_id)
    print(i.stu_num)
    stu = i.student
    print(stu.stu_name)

输出结果:

Princeton U
005
1000
零零漆
Fuxxking U
009
500
千年虫

总结:将深层次的嵌套结果转换为用类实现的好处是,在初始化类对象后,可以直接使用实例.属性的方式访问想要的数据,且关键数据在类中定义的很详细。

到此这篇关于Python实现JavaBeans流程详解的文章就介绍到这了,更多相关Python JavaBeans内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python实现JavaBeans流程详解

本文链接: https://lsjlt.com/news/177748.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python实现JavaBeans流程详解
    目录场景JavaBeans in Python在JavaBeans中有这样的一个描述:当一些信息需要使用类似于字典嵌套字典再嵌套列表这种很深的结构来储存的时候,请改用类来储存。实际上...
    99+
    2023-01-14
    Python JavaBeans Python实现JavaBeans
  • Python如何实现JavaBeans
    本文小编为大家详细介绍“Python如何实现JavaBeans”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现JavaBeans”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在JavaBean...
    99+
    2023-07-05
  • JavaScript实现Promise流程详解
    目录构造函数then 和 catch方法解决异步问题all和race方法构造函数 首先我们来看一下我们是如何使用promise的,我们在实例化对象是这么使用的: let p1...
    99+
    2024-04-02
  • Python实现自动填写脚本流程详解
    目录前言环境使用模块使用本次案例代码实现思路最终效果代码实现前言 环境使用 Python 3.8Pycharm 模块使用 import requests —> 数据...
    99+
    2024-04-02
  • python实现AI聊天机器人详解流程
    前言 开始几天,我是使用很原始的方法,自己去获取天气预报截图,再手动发送给小姐姐。连续几天之后我一想:不对呀,我怎么说也是一个程序猿,怎么能用这么 low 的方式呢。 联想起之前看到...
    99+
    2024-04-02
  • Vuereactive函数实现流程详解
    目录1.Reflect2.Proxy的工作原理3.代理Object4.合理的触发响应5.深响应和浅响应6.只读和浅只读7.代理数组1.Reflect   Prox...
    99+
    2023-01-04
    Vue reactive函数 Vue reactive
  • ReactRefs转发实现流程详解
    目录Refs转发概述转发refs到DOM组件组件库维护者的注意事项在高阶组件中转发refs在 DevTools 中显示自定义名称Refs转发 概述 将ref自动地通过组件传递到子组件...
    99+
    2022-12-03
    React Refs转发 React Refs作用
  • Python实战项目刮刮乐的实现详解流程
    目录导语正文1)环境安装2)正式敲代码2.1定义必要常量2.2设置随机读取图片2.3主程序3)效果图展示3.1 part 随机图一3.2 part 随机图二3.3 part 随机图三...
    99+
    2024-04-02
  • Mybatis实现SQL存储流程详解
    今天学习了Mybatis执行存储,感觉不是那么好用,可能是我没用习惯。 我先在SQLSERVER创建存储 alter procedure usp_user_getUser @use...
    99+
    2023-03-10
    Mybatis SQL存储到数据库 Mybatis SQL
  • 详解Java实现简单SPI流程
    目录SPI标注注解SPI核心实现SPI的一些Class和扩展对象缓存获取扩展器ExtensionLoader扩展加载器构造方法获取SPI扩展对象创建扩展对象从Holder中获取获取扩...
    99+
    2023-03-02
    Java实现SPI Java SPI Java实现简单SPI
  • KotlinstartActivity跳转Activity实现流程详解
    目录带参数的调整自定义数据传输startActivityForResult小结从一个Activity跳到另一个Activity 在编写安卓代码是最常见的事情了。我们不可能在一个页面中...
    99+
    2022-12-08
    Kotlin startActivity跳转Activity Kotlin startActivity跳转
  • C++模拟实现vector流程详解
    目录模拟vector总结模拟vector 我们可以通过模板实现类似vector的类。我们实现一个StrVecTemp类,其内部通过allocator开辟空间,存储的类型用T来表示,T...
    99+
    2022-11-13
    C++ vector容器 C++ vector
  • C++详细实现红黑树流程详解
    目录红黑树的概念红黑树的性质红黑树的定义与树结构插入新增结点插入后维护红黑树性质的主逻辑旋转验证红黑树与AVl树的比较红黑树的应用红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点...
    99+
    2024-04-02
  • Python PyQt5实战项目之查询器的实现流程详解
    目录简介主界面添加数据的界面删除数据的界面修改数据的界面全部代码展示简介 这是一个操作数据库(sqlite3)的项目,用PyQt5进行界面封装。 此次项目最主要的是,主界面与子界面的...
    99+
    2024-04-02
  • Pythontkinter实现桌面软件流程详解
    目录前言环境使用模块使用界面代码功能代码前言 tkinter:GUI桌面应用开发模块,写软件界面你还可以打包成exe软件, 哪怕你没有python环境, 一样可以用虽然不一定要有界面...
    99+
    2024-04-02
  • Vue编译优化实现流程详解
    目录动态节点收集与补丁标志1.传统diff算法的问题2.Block和PatchFlags3.收集动态节点4.渲染器运行时支持5.Block树静态提升预字符化缓存内联事件处理函数v-o...
    99+
    2023-01-28
    Vue编译优化 Vue代码优化
  • SQL实现数据过滤流程详解
    目录数据准备student 表过滤数据过滤单个值过滤null 值过滤集合BETWEEN IN NOT IN使用通配符过滤数据LIKE使用逻辑操作符组合WHERE子句数据准备student 表 CREATE TAB...
    99+
    2023-01-05
    SQL数据过滤 SQL过滤语句
  • React18之update流程从零实现详解
    目录引言对比Mount阶段beginWork流程复用fiberNodeuseFiber删除旧的和新建fiberNodecompleteWork流程commitWork流程更新upda...
    99+
    2023-01-10
    React18 update流程 React update
  • SpringBoot响应处理实现流程详解
    目录1、相关依赖2、ReturnValueHandlers—返回值处理器3、HttpMessageConvert—消息转换器4、开启浏览器参数方式内容协商功能...
    99+
    2024-04-02
  • SpringBootSession接口验证实现流程详解
    目录添加pom.xml创建简单的测试接口使用过滤器实现使用拦截器实现需求:只有用户登录成功后,才能访问其它接口,否则提示需要进行登录 项目仓库地址:https://gitee.com...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作