XPath выбрать все элементы между двумя конкретными элементами

Потому что было бы неприятно отрицать это. Начальный этап интерпретатора или компилятора - это токенизатор (он же «лексер»), который разбивает плоский текст программы на значимые единицы. В современных языках программирования (C и далее, для обсуждения), , чтобы быть приятным для программистов , пробелы между токенами обычно игнорируются. В Python, конечно, пробелы в начале строк очень значительны; но в другом месте, в линиях и многострочных выражениях, это не так. [Да, это очень широкие заявления, но modulo контрпримеры с угловым регистром, они верны.]

Кроме того, иногда желательно - например:

obj.deeply.\
    nested.\
    chain.of.\
    attributes

Обратная косая черта, символ продолжения, стирает символы перевода строки, но пробелы, предшествующие, например, nested остается, поэтому он сразу же следует за . после deeply.

В выражениях с более глубоким вложением небольшое количество пробелов может дать большой коэффициент удобочитаемости:

Сравните:

x = your_map[my_func(some_big_expr[17])]

vs

x = your_map[ my_func( some_big_expr[17]) ]

Предостережения: Если у вашего работодателя, клиента, команды или профессора есть правила стиля или рекомендации, вы должны придерживаться их. Второй пример выше не соответствует руководству по стилю Python, PEP8, которое большинство магазинов Python принимают или адаптируют. Но этот документ представляет собой сборник руководящих принципов, а не религиозных или гражданских указов.

30
задан Mirko 26 October 2014 в 22:46
поделиться