是否可以在 Python 中进行多行分配?
Is it possible to have multi line assignment in Python?
使用 __ setitem __ 的讨厌赋值示例:
self.outer_scopes[self.children.item(i).getNodeName()][self.children.item(i).item(j).getNodeName()] = self.children.item(i).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.outer_scopes[self.children.item(i).getNodeName()][self.children.item(i).item(j).getNodeName()] \
= \
self.children.item(i).item(j).getTextContent()
但这种风格很糟糕。在这种情况下,如果可能的话,我会使用中间变量来使赋值更容易阅读。
使用变量来缩短你的表达。如果我知道更多上下文,会找到更好的名字:
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)
三次。
item_i = self.children.item(i)
self.outer_scopes[
item_i.getNodeName()
][
item_i.item(j).getNodeName()
] = item_i.item(j).getTextContent()
您可以在 Python.
中的侧括号([]
或 ()
或 {}
)中任意使用换行符
self.outer_scopes[
self.children.item(i).getNodeName()
][self.children.item(i).item(j).getNodeName()
] = self.children.item(i).item(j).getTextContent()
有效,但它可能不会为您赢得任何风格积分。
您也可以:
foo = self.children.item(i).getNodeName()
bar = self.children.item(i).item(j).getNodeName()
self.outer_scopes[foo][bar] = self.children.item(i).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()
使用 __ setitem __ 的讨厌赋值示例:
self.outer_scopes[self.children.item(i).getNodeName()][self.children.item(i).item(j).getNodeName()] = self.children.item(i).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.outer_scopes[self.children.item(i).getNodeName()][self.children.item(i).item(j).getNodeName()] \
= \
self.children.item(i).item(j).getTextContent()
但这种风格很糟糕。在这种情况下,如果可能的话,我会使用中间变量来使赋值更容易阅读。
使用变量来缩短你的表达。如果我知道更多上下文,会找到更好的名字:
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)
三次。
item_i = self.children.item(i)
self.outer_scopes[
item_i.getNodeName()
][
item_i.item(j).getNodeName()
] = item_i.item(j).getTextContent()
您可以在 Python.
中的侧括号([]
或 ()
或 {}
)中任意使用换行符
self.outer_scopes[
self.children.item(i).getNodeName()
][self.children.item(i).item(j).getNodeName()
] = self.children.item(i).item(j).getTextContent()
有效,但它可能不会为您赢得任何风格积分。
您也可以:
foo = self.children.item(i).getNodeName()
bar = self.children.item(i).item(j).getNodeName()
self.outer_scopes[foo][bar] = self.children.item(i).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()