Техническая причина для `pass` в python? - PullRequest
0 голосов
/ 25 февраля 2020

Есть ли техническая причина, по которой pass необходимо использовать для express "бездействия" в python вместо того, чтобы позволить отсутствию утверждения обозначать это?

Согласно python3 .8 do c:

Оператор pass ничего не делает. Его можно использовать, когда оператор требуется синтаксически, но программа не требует никаких действий ".

Далее следуют три следующих примера:

while True:
    pass  # Busy-wait for keyboard interrupt (Ctrl+C)

class MyEmptyClass:
    pass

def initlog(*args):
    pass  # Remember to implement this!

Это выглядит как все эти варианты использования pass обусловлены тем фактом, что каждое из ключевых слов while, if, class, def и т. д. c. требуют одного или нескольких следующих операторов с отступом. если бы язык был смягчен так, чтобы за каждым из этих ключевых слов могли следовать операторы zero -or-more, то, похоже, pass не понадобится.

Если бы это было готово, тогда приведенные выше примеры можно записать в виде:

while True:
    # Busy-wait for keyboard interrupt (Ctrl+C)

class MyEmptyClass:

def initlog(*args):
    # Remember to implement this!

Есть ли техническая причина, почему это не сработает?

Что я прошу это либо:

  • пример, где разрешение отсутствия оператора вместо pass может привести к неоднозначности синтаксического анализа, либо другая конкретная трудность синтаксического анализа (например, язык больше не используется) LL (1), , если это было раньше ) Или,

    * 10 43 *
  • убедительный аргумент, показывающий, что изменение грамматики python таким способом не вызовет такой сложности.

Комментарий к закрытие

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

В частности, ответ или комментарий, который включает слова «явный лучше, чем неявный», - это не то, что я в идеале ищу.

Я не верю, что это дубликат «Как использовать выражение pass» так как он не отвечает ни на один из ответов, в настоящее время прикрепленных к этому вопросу.

...