Есть несколько связанных вопросов о распаковке однозначных кортежей, но я ' Я хотел бы знать, есть ли предпочтительный метод с точки зрения удобочитаемости для совместного использования и поддержки кода. Я считаю, что это источник путаницы или неправильного понимания среди коллег, когда они включают длинную цепочку функций, такую как запрос 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()