Синтаксис Python и разборчивость для последовательных шагов, которые являются подпунктами - PullRequest
1 голос
/ 14 января 2010

Мне нравится форматирование и удобочитаемость пробелов в Python. Но можете ли вы или есть общий / стандартный способ разграничения блоков кода, которые не должны иметь отступ, т.е. не принадлежат вложенным циклам?

У меня есть две части процедуры, которые находятся внутри основного заголовка. Что-то вроде шага 2 состоит из частей 2.1 и частей 2.2.

Пока комментирую у меня что-то вроде:

# Section 2
<code>
# Section 2.1
<code>
# Section 2.2
<code>

Но я бы предпочел что-то вроде:

# Section 2
<code>
    # Section 2.1
    <code>
    # Section 2.2
    <code>

Но ни 2.1, ни 2.2 не являются под-циклами, и я знаю, что это незаконно. Они просто выполняются последовательно, но являются для меня логическими шагами, которые попадают под заголовок 2, поэтому, когда я смотрю на свой код, я знаю, какой частью программы они являются.

Как вы справляетесь с этими случаями при кодировании?

Ответы [ 6 ]

5 голосов
/ 14 января 2010

Поместите их в отдельные функции.

4 голосов
/ 14 января 2010

Вы не должны иметь длинные функции в Python. Возьмите пробелы в качестве подсказки.

3 голосов
/ 14 января 2010

Что не так с определениями функций?

def section1( ... ):

def section2( ... ):

def overall( ... ):
    section1()
    section2()

Если оно настолько велико, что требуется отступ, возможно, оно слишком велико.

Кроме того, вы можете использовать оператор with для принудительного отступа.

1 голос
/ 14 января 2010

Я удивлен, что вы могли бы сделать отступ в своем коде таким образом, даже на тех языках, которые это позволяют. Как члены вашей команды относятся к этому? Мне было бы очень странно иметь код с отступом, который не соответствует блоку.

1 голос
/ 14 января 2010

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

1 голос
/ 14 января 2010

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

def section2():
    section21()
    section22()

или что-то подобное. Я считаю, что использование функций не только в целях повторного использования, но и в организационном плане делает мой код намного более читабельным и простым в обслуживании. Если функциям необходимо совместно использовать значительный объем данных, вы можете подумать о том, чтобы сделать их методами класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...