2010-09-15 14 views
8

Hay algunos relatedquestions sobre cómo desempaquetar tuplas de un solo valor, pero me gustaría saber si existe un método preferido en términos de legibilidad para compartir y mantener el código. Estoy encontrando que esto es una fuente de confusión o mala lectura entre colegas cuando involucran una larga cadena funcional, como una consulta ORM.Convención legible para desempaquetar una sola tupla de valor

¿Hay alguna convención para esto similar a las directrices pep8? Si no, ¿cuál es la forma más clara y legible de hacerlo?

A continuación se detallan las maneras en que lo he intentado y mis ideas sobre ellas.

métodos

Dos comunes que son ordenadas pero fácil pasar por alto:

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

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

Una función sería explícita, pero no estándar:

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

Tal vez siempre comentando sería el más claro?

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

Respuesta

21

¿Qué le parece usar el paréntesis explícito para indicar que está desempacando una tupla?

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

Después de todo explicit is better than implicit.

+0

me gusta tu pensamiento –

+0

Muy explícito – Rod

Cuestiones relacionadas