长dict属性的重构

2024-05-17 13:44:40 发布

您现在位置:Python中文网/ 问答频道 /正文

代码运行良好,但似乎这行是丑陋的。你知道吗

self.data["data"]["someComponent"]["items"][1]["content"]["items"].append(json.load(someVariable))

所以我的问题是: 这适用于python约定的代码吗?薄片8、pylint等。。不显示问题。 也许你对重构有一些新的想法?你知道吗


Tags: 代码selfjsondataloaditemscontentpylint
1条回答
网友
1楼 · 发布于 2024-05-17 13:44:40

它对于小程序或原型来说是好的,但是对于大型和复杂的项目来说是不好的。你知道吗

如果是长行,您可以使用\移动到下一行(但是flake8将发出关于[之前的空白的警告):

self.data \
    ["data"] \
    ["someComponent"] \
    ["items"] \
    [1] \
    ["content"] \
    ["items"].append(json.load(someVariable))

在严肃的项目中,应该使用其他数据结构。例如,不同类的对象的组合,它形成了您需要的树。你知道吗

为字典结构中的每个实体创建一个类。例如,Data类,它包含字段someComponentsomeOtherComponent。创建类Component,该类将字段items作为列表或使Component可编辑(定义方法__iter__()和可选方法__getitem__(index))。等等。并访问其字段:

self.data.someComponent[1].content.append(myNewContentElement)

要从json获取myNewContentElement,您可以创建一个函数,该函数采用加载的json结构并为您返回ContentElement对象。你知道吗

相关问题 更多 >