Читаемое соглашение для распаковки одиночных value tuple

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

9
задан Community 23 May 2017 в 12:10
поделиться