在Python中可以有多行赋值吗?

2024-10-02 14:28:36 发布

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

使用“setitem”的讨厌赋值示例:

self.outer_scopes[self.children.item(i).getNodeName()][self.children.item(i).item(j).getNodeName()] = self.children.item(i).item(j).getTextContent()

有可能做这样的事吗?在

^{pr2}$

我的意思是,拆分赋值,而不是后面的字符串加上\或其他什么。在


Tags: 字符串self示例itemouter赋值childrenscopes
3条回答

使用变量来缩短表达式。会找到更好的名字,如果我知道更多的上下文:

item_i = self.children.item(i)
item_j = item_i.item(j)
outer_scope = self.outer_scopes[item_i.getNodeName()]
outer_scope[item_j.getNodeName()] = item_j.getTextContent()

方括号和圆括号一样,调用隐式行延续:

self.outer_scopes[
    self.children.item(i).getNodeName()
    ][
    self.children.item(i).item(j).getNodeName()
    ] = self.children.item(i).item(j).getTextContent()

也就是说,这至少需要一个小的重构,因为您访问了self.children.item(i)三次。在

^{pr2}$

可以使用反斜杠:

self.outer_scopes[self.children.item(i).getNodeName()][self.children.item(i).item(j).getNodeName()] \
= \
self.children.item(i).item(j).getTextContent()

但那是相当糟糕的风格。在本例中,如果可能,我将使用中间变量使赋值更易于阅读。在

相关问题 更多 >