smirnoffs
Май 19, 2011 14:36:52
Как считаете, нормально ли, что у меня встречаются в коде такие строки? Имеет ли смысл разбить строку на несколько строк?
output.write('MMS upload time (sec)\t'+'\t'.join(str(avg_upload_time) for ms_key in sorted(avg_upload_time.keys()))+'\n')
Soteric
Май 19, 2011 14:57:44
Думаю стоит
pill
Май 19, 2011 15:12:06
я бы так написал:
s = '\t'.join(str(avg_upload_time[key]) for key in sorted(avg_upload_time))
output.write('MMS upload time (sec)\t' + s + '\n')
или так:
s = '\t'.join(str(avg_upload_time[key]) for key in avg_upload_time)
output.write('MMS upload time (sec)\t' + s + '\n')
2.7 кажись уже отсортированными ключи отдает.
smirnoffs
Май 19, 2011 15:14:59
pill
for key in avg_upload_time
Разве можно без .keys() получить список ключей из avg_upload_time?
smirnoffs
Май 19, 2011 15:16:53
Проверил, вижу что можно. Удивлен честно говоря.
>>> sorted_values = map(avg_upload_time.get, sorted(avg_upload_time))
>>> output.write('\t'.join( + sorted_values))
>>> output.write('\n')
..bw
smirnoffs
Май 19, 2011 15:55:22
bw
Тоже красиво. Спасибо. Привет Сибири!
Игнат
Май 19, 2011 16:00:41
раньше мне тоже очень нравилось выравнивать весь код в одну строчку
правда то был пхп, а питон дает ещё большие возможности в этом плане
но, потом, где-то прочитал что именно это и зовется говнокодом :)
поэтому, с опытом, я стал придавать большее значение понятности кода, чем его кратости
smirnoffs
Май 19, 2011 16:04:53
Игнат
Дело в том что мне код кажется совершенно понятным и я достаточно часто встречаю подобные строки в чужом коде и они не пугают. Но вот, обнаружил, что мои сотрудники впадают в ступор при виде таких строк. Вариант pill'а мне кажется самым разумным. Просто вынести сложную часть в отдельную строку.
Soteric
Май 19, 2011 16:10:43
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. Стив Макконнелл :)