Сценарий: у вас длинный кортеж в результате SQL-запроса и его нужно распаковать в отдельные значения. Каков наилучший способ сделать это, когда он соответствует PEP8? До сих пор у меня есть эти три варианта:Идиома для распаковки длинного кортежа
одного задания, используйте обратную косую черту, чтобы разделить на несколько строк
person_id, first_name, last_name, email, \ birth_date, graduation_year, home_street, \ home_city, home_zip, mail_street, mail_city, \ mail_zip = row
одно назначение, группа левая сторона в скобках и разрывать строки без обратной косой черты
(person_id, first_name, last_name, email, birth_date, graduation_year, home_street, home_city, home_zip, mail_street, mail_city, mail_zip) = row
разделить на несколько назначений, каждый фитинг в одну линию
person_id, first_name, last_name, email = row[0:4] birth_date, graduation_year, home_street = row[4:7] home_city, home_zip, mail_street, mail_city = row[7:11] mail_zip = row[11]
Какой из трех вариантов является лучшим? есть что-нибудь получше?
Мнение. Мне не нравится решение с обратной косой чертой в конце строки, потому что код сломается, если после него будет невидимый символ (например, пробел). Для меня вторая версия - это путь. – Matthias
Вы считали единый ['namedtuple'] (https://docs.python.org/2/library/collections.html#collections.namedtuple) вместо отдельных имен? – jonrsharpe
@ Matthias Он спрашивает «в то время как соответствует PEP-8», и PEP-8 довольно подробно описывает, что использовать. – chepner