Найти - Пользователи
Полная версия: Хороший тон
Начало » Python для новичков » Хороший тон
1 2
smirnoffs
Как считаете, нормально ли, что у меня встречаются в коде такие строки? Имеет ли смысл разбить строку на несколько строк?

output.write('MMS upload time (sec)\t'+'\t'.join(str(avg_upload_time) for ms_key in sorted(avg_upload_time.keys()))+'\n')
Soteric
Думаю стоит
pill
я бы так написал:
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
pill
for key in avg_upload_time
Разве можно без .keys() получить список ключей из avg_upload_time?
smirnoffs
Проверил, вижу что можно. Удивлен честно говоря.
bw
>>> sorted_values = map(avg_upload_time.get, sorted(avg_upload_time))
>>> output.write('\t'.join( + sorted_values))
>>> output.write('\n')

..bw
smirnoffs
bw
Тоже красиво. Спасибо. Привет Сибири!
Игнат
раньше мне тоже очень нравилось выравнивать весь код в одну строчку
правда то был пхп, а питон дает ещё большие возможности в этом плане

но, потом, где-то прочитал что именно это и зовется говнокодом :)
поэтому, с опытом, я стал придавать большее значение понятности кода, чем его кратости
smirnoffs
Игнат
Дело в том что мне код кажется совершенно понятным и я достаточно часто встречаю подобные строки в чужом коде и они не пугают. Но вот, обнаружил, что мои сотрудники впадают в ступор при виде таких строк. Вариант pill'а мне кажется самым разумным. Просто вынести сложную часть в отдельную строку.
Soteric
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. Стив Макконнелл :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB