当前位置:主页 > python教程 > Python JavaBeans

Python实现JavaBeans流程详解

发布:2023-03-05 19:00:01 59


给大家整理一篇相关的编程文章,网友禄珺琪根据主题投稿了本篇教程内容,涉及到Python、JavaBeans、Python实现JavaBeans、Python JavaBeans相关内容,已被944网友关注,下面的电子资料对本篇知识点有更加详尽的解释。

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内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

  • Python工厂模式实现封装Webhook群聊机器人详解

    发布:2023-04-01

    企业存在给 特定群组 自动推送消息的需求,你可以在群聊中添加一个自定义机器人,通过服务端调用 webhook 地址,即可将外部系统的通知消息即时推送到群聊中。本文就来和大家聊聊具体实现方法


  • Python requests模块用法详解

    发布:2023-03-31

    这篇文章主要介绍了Python requests模块用法,Python内置了requests模块,该模块主要用来发送HTTP请求,requests模块比urllib模块更简洁


  • Python基于TensorFlow接口实现深度学习神经网络回归

    发布:2023-04-06

    这篇文章主要为大家详细介绍了如何基于Python语言中TensorFlow的tf.estimator接口,实现深度学习神经网络回归的具体方法,感兴趣的可以了解一下


  • python pandas写入excel文件的方法示例

    发布:2022-06-15

    给网友朋友们带来一篇关于pandas的教程,这篇文章主要介绍了python pandas写入excel文件的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • python总urllib,伪装,超时设置,异常处理的方法

    发布:2020-06-18

    今天小编就为大家分享一篇python爬虫之urllib,伪装,超时设置,异常处理的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • python求最大值最小值的实例方法

    发布:2019-11-19

    第一步,定义一个用户输入数据个数的方法。||第二步,创建一个空列表来储存用户输入的每个数据。||第三步,用for循环去遍历。||第四步,调用min与max函数且以列表为参。||第五步,输出结果


  • Python画高斯分布图形实例代码

    发布:2020-03-17

    今天小编就为大家分享一篇Python画图高斯分布的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • Python设计一个猜大小游戏

    发布:2019-05-28

    我们在本篇关于Python的教程内容里给大家分享一个制作“猜大小”这个经典小游戏的过程,需要的朋友们可以参考学习下。


网友讨论