内联元组创建 - 哪个更具可读性?
Inline Tuple Creation - Which is More Readable?
我试图决定我应该如何从可读性的角度处理在方法调用中创建元组。
标准方法似乎很容易忽略元组的括号,尤其是当它在多个嵌套调用中时:
Foo(a, b).bar((c, len(d)))
到目前为止,我已经想出两种不同的方法来使创建元组变得明显。我可以显式调用 tuple()
函数,例如:
Foo(a, b).bar(tuple(c, len(d)))
或者,我可以稍微扩展该行以使元组括号更加明显:
Foo(a, b).bar(
(c, len(d))
)
应该优先考虑或考虑以下哪些 "pythonic"?或者有更好的方法来解决这个问题吗?
而不是这个:
Foo(a, b).bar((c, len(d)))
展开即可:
foo = Foo(a, b)
barparam = (c, len(d))
foo.bar(barparam)
易于阅读,易于修改,修改后易于代码审查。
我想我更愿意将 bar 重写为接受两个参数 Foo(a, b).bar(c, len(d))
。如果你想在这种情况下使用元组,它可以是
barparam = (c, len(d))
foo = Foo(a,b)
foo.bar(*barparam)
我试图决定我应该如何从可读性的角度处理在方法调用中创建元组。
标准方法似乎很容易忽略元组的括号,尤其是当它在多个嵌套调用中时:
Foo(a, b).bar((c, len(d)))
到目前为止,我已经想出两种不同的方法来使创建元组变得明显。我可以显式调用 tuple()
函数,例如:
Foo(a, b).bar(tuple(c, len(d)))
或者,我可以稍微扩展该行以使元组括号更加明显:
Foo(a, b).bar(
(c, len(d))
)
应该优先考虑或考虑以下哪些 "pythonic"?或者有更好的方法来解决这个问题吗?
而不是这个:
Foo(a, b).bar((c, len(d)))
展开即可:
foo = Foo(a, b)
barparam = (c, len(d))
foo.bar(barparam)
易于阅读,易于修改,修改后易于代码审查。
我想我更愿意将 bar 重写为接受两个参数 Foo(a, b).bar(c, len(d))
。如果你想在这种情况下使用元组,它可以是
barparam = (c, len(d))
foo = Foo(a,b)
foo.bar(*barparam)