Python 长dict属性行的重构

Python 长dict属性行的重构,python,refactoring,Python,Refactoring,代码运行良好,但这行代码看起来很难看 self.data["data"]["someComponent"]["items"][1]["content"]["items"].append(json.load(someVariable)) 所以我的问题是: 这适用于python约定的代码吗?薄片8、派林等。。没有显示问题。 也许你对重构有一些新的想法?这对小程序或原型来说是不错的,但对大型和复杂的项目来说是不好的 如果是长行,您可以使用\移动到下一行(但flake8将在[之前发出有关空格的警告):

代码运行良好,但这行代码看起来很难看

self.data["data"]["someComponent"]["items"][1]["content"]["items"].append(json.load(someVariable))
所以我的问题是: 这适用于python约定的代码吗?薄片8、派林等。。没有显示问题。
也许你对重构有一些新的想法?

这对小程序或原型来说是不错的,但对大型和复杂的项目来说是不好的

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

self.data\
[“数据”]\
[“someComponent”]\
[“项目”]\
[1] \
[“内容”]\
[“items”].append(json.load(someVariable))
在严肃的项目中,您应该使用其他数据结构。例如,不同类的对象的组合,这形成了您需要的树

为字典结构中的每个实体创建一个类。例如,
数据
类,它包含字段
someComponent
,例如,
someOtherComponent
。创建类
Component
,将字段
作为列表或使
组件
可编辑(定义方法
\uuuu iter\uuuu()
和可选方法
\uuuu getitem\uuuu(索引)
)等。并访问其字段,如下所示:

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

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

谢谢您的回答。我的问题是如何重构该函数以减少丑陋,我正在寻找一些最佳实践。也许您有一些关于ob组成的代码示例不同课程的主题?谢谢你的帮助。祝你有愉快的一天和心情!