可读的单值元组拆解约定

9 投票
1 回答
1645 浏览
提问于 2025-04-16 04:11

这里有一些关于如何处理单值元组的问题,大家可以参考一下相关的讨论最佳实践。我想知道在代码的可读性方面,是否有一种更好的方法,方便大家分享和维护代码。我发现当涉及到像ORM查询这样长的函数链时,这些单值元组会让同事们感到困惑或者误解。

有没有类似于pep8的规范来处理这个问题?如果没有,哪种方法是最清晰、最易读的呢?

下面是我尝试过的一些方法,以及我对它们的看法。

有两种常见的方法,看起来很整洁,但容易被忽略:

value, = long().chained().expression().that().returns().tuple()

value = long().chained().expression().that().returns().tuple()[0]

使用函数的方式会很明确,但不太标准:

value = unpack_tuple(long().chained().expression().that().returns().tuple())

也许总是加注释是最清晰的做法?

# unpack single-value tuple
value, = long().chained().expression().that().returns().tuple()

1 个回答

22

你觉得用明确的括号来表示你在拆解一个元组怎么样?

(value, ) = long().chained().expression().that().returns().tuple()

毕竟,明确总比模糊好

撰写回答