>>не имеет значения, сколько там табов-пробелов, важно только
>> одно - стоят они на одной линии или нет.
> PEP с вами не согласен.Речь идёт не о PEP, речь идёт о восприятии человеком. Пробелы считать не нужно - достаточно видеть блоки. Разумеется, PEP-8 это благо, и только следование ему (хотя бы по большинству пунктов), делает человека человеком разумным. :)
Кстати, в данной книге я посмотрел начало: автор рекомендует использовать 4 пробела или tab. Я так и не понял, то ли он PEP-8 не читал, то ли осуждает.
> Только когда крутишь большой блок, то прицел часто сбивается. Особенно когда в
> конце блока есть несколько вложенных блоков - на взгляд так сразу
> не определишь, сколько там блоков закончилось.
"Если что-то не работает или не понятно - см. PEP-8". Это как Нагорную проповедь перечитывать - чем больше перечитываешь, тем большее открывается - потому что ситуации всегда разные...
> Когда начало уехало далеко-далеко вверх, тут так сразу и не поймёшь, какой
> там блок закончился: искомый или какой-то другой? Пробелы считать, делить на
> четыре? А вдруг писал какой-то оригинал вроде вас, который про PEP
не pep, а pep-8, большинству пунктов которого я следую и использую 4 пробела.
> выделить в отдельную подпрограмму. Но в случае со скобочками и при
> использовании хорошего стиля, когда закрывающая скобочка стоит на одной линии с
> открывающей скобочкой (или if), сориентироваться гораздо проще, потому что воображаемую
> линию можно построить не только сверху, но и снизу - от
> закрывающей скобки.
Так и строй линию от последней линии до первой. Я не понял вообще никакой разницы со скобочками, кроме того, что скобочка МОЖЕТ там стоять, а строка - ОБЯЗАНА там стоять, иначе парсер не будет работать. Таких проблем у меня не было НИКОГДА, и я даже не могу представить, как они могут возникнуть. Со скобочками есть одна проблема, но очень большая - они МЕШАЮТ.
>>да и вообще все, кроме совсем слепых,
>> совсем глупых или пыхеров...
> В Python средств защиты от ошибок очень мало, он слишком гибкий. Это
> хорошо, когда на языке можно сделать что-то сложное, но плохо, когда
> эта гибкость настолько легко доступна, что ей можно воспользоваться нечаянно, по ошибке.
Такие ошибки практически маловероятны. У меня было больше инциндентов с установленной не там скобочкой, чем с неверным отступом. А вариантов всего три:
1. Если элемент с :, то +1 отступ, и никаких других вариантов (кроме краткой записи однострочника) быть не может.
2. Если элемент не с :, то остаёмся на той же строчке
3. Если элемент не с :, то блок закончен, и отступы уходят назад
все остальные варианты дадут ошибку парсера. поэтому в реальных (а не надуманных) задачах что-то испортить - минимум шансов.