2015-12-31 3 views
1

Я читаю через Learning Python (3rd Edition), Марк Лутц, и я в той части, которая касается гаек и болтов синтаксиса Python.Вопросы о концептуальной иерархии Python

Он определяет иерархию Python языка структуру следующим образом:

  1. Программа состоит из модулей
  2. модулей содержат заявления
  3. заявлений содержат выражения
  4. Выражения создания и обработок объектов

Я немного запутался в определении утверждений Python.
Я слышал, что выражения выражаются как все, что является ценностью, но также могут содержать такие вещи, как сложение и т. Д.

Можно ли с уверенностью сказать, что операторы являются структурированными операциями над выражениями, которые управляют логикой модуля?

ответ

3

Да, вы почти у цели.

Выражения - это то, что оценивается до значение.

С другой стороны, заявления являются чем-то, что вызывает действие .

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

+0

Это отличный и краткий ответ! – flybonzai

+1

Мне также нравится компактность этого, но поскольку значения _all_ в Python и, следовательно, все результаты выражения, являются объектами, я бы рекомендовал переформулировать последнее предложение - возможно, «Это действие может быть на каком-то объекте (возможно, результат выражения), или состояние структуры программы (создание нового класса), или поток управления (прыжки назад и вперед, например, 'if' или' for') ". –

+0

@AasmundEldhuset Я немного отредактировал. Надеюсь, теперь это лучше. – kmonsoor

2

Я нашел это с помощью быстрого поиска Google, это то, что вы ищете?

What is the difference between an expression and a statement in Python?

«Заявление (см 1, 2), с другой стороны, все, что может составить линию (или несколько строк) код Python. Обратите внимание, что выражения утверждения, а также.»

1

Я очень настороженно отношусь к таким классификациям и особенно стараюсь превратить их в иерархию. Выражение также может быть, например, вызовом функции; Я предполагаю, что это входит в ваше определение «что-то, что является значением», поскольку функция всегда возвращает значение, даже если оно равно None.

Заявление действительно все остальное; назначение, управление потоком (например, определение цикла for или while, try/except, break, continue ...), введение функции или определения класса (или class) и т. д.

Смежные вопросы