The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Доступен перевод на русский язык книги A Byte of Python"
Отправлено www2, 24-Авг-13 14:34 
> Всё, других вариантов нет.

Ну всё, теперь горе-копипастеры статей про питон даже бровью не поведут, когда нечаяно похерят отступы.

>не имеет значения, сколько там табов-пробелов, важно только
> одно - стоят они на одной линии или нет.

PEP с вами не согласен.

> Если стоят
> - значит блок продолжается, если не стоят - значит блок закончился.
> Всё.  И заметить, стоят ли они на одной линии или
> нет, смогут даже малыши...

Только когда крутишь большой блок, то прицел часто сбивается. Особенно когда в конце блока есть несколько вложенных блоков - на взгляд так сразу не определишь, сколько там блоков закончилось.

Пример:

if a == b:
    ...
    if b == c:
       ...
       try:
           ...
       except:
           ...
       else:
           if c == 4:
               ...
               ...
               if d <> 8:
                   ...
               elif d <> c:
                   ...
                   if not d:
                       ...
                       # И тут неожиданность
    ...

Когда начало уехало далеко-далеко вверх, тут так сразу и не поймёшь, какой там блок закончился: искомый или какой-то другой? Пробелы считать, делить на четыре? А вдруг писал какой-то оригинал вроде вас, который про PEP не слышал и пишет вперемешку - где таб, где два пробела, где три.

Это, конечно, плохой пример, хорошие программисты такие глубоко вложенные блоки стараются выделить в отдельную подпрограмму. Но в случае со скобочками и при использовании хорошего стиля, когда закрывающая скобочка стоит на одной линии с открывающей скобочкой (или if), сориентироваться гораздо проще, потому что воображаемую линию можно построить не только сверху, но и снизу - от закрывающей скобки.
                
>да и вообще все, кроме совсем слепых,
> совсем глупых или пыхеров...

Людям свойственно ошибаться. Не ошибаются только исправные автоматы. Поэтому даже не слепой и не глупый человек запросто может допустить ошибку. Разумные меры защиты от ошибок помогают программисту. Чрезмерные - мешают, отсутствующие - по крайней мере не помогают.

В Python средств защиты от ошибок очень мало, он слишком гибкий. Это хорошо, когда на языке можно сделать что-то сложное, но плохо, когда эта гибкость настолько легко доступна, что ей можно воспользоваться нечаянно, по ошибке. Лучше было бы, если бы гибкость была, но она была бы изолированной, так чтобы воспользоваться ею можно было только осознанно. Поэтому мне больше нравится Perl.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру