Определение и семантика синтаксических конструкций
with с with_item [; with_item] block
with_item := [assign_tuple =] expression.
Если есть несколько with_item, семантически это эквивалентно вложенным операторам with:
with a = A(); b = B() {
// ...
}
// равносильно...
with a = A() {
with b = B() {
// ...
}
}
Определение операторов и присваивание значений
Assign_tuple = expression;
Оператор присваивания значений относится к явным определениям. Оператор присваивания не может использоваться как выражение. Часть assign_tuple является особым выражением, которое в определённом смысле становится левым значением выражения. Часть assign может быть выражением нижнего индекса, выражением члена или специальным кортежем assign.
Элементы кортежа assign должны быть левыми значениями выражения. Когда правая часть выражения присваивания является распаковываемым объектом, результаты распаковки будут присвоены элементам кортежа по очереди:
a, b, c = c, b, a;
func [ ( NAME ) ] NAME (param [, param]* [, *param] [, **param]) { statements }.
Определение функции также относится к явным определениям. Конкретная структура выглядит следующим образом:
func [bind] name param_list { statements }.
Bind является необязательным. Если bind определено, это означает, что функция является связанной функцией соответствующей структуры. Следует отметить, что связанная функция — это не выражение, а имя.
class NAME [: expression] [extends expression [, expression]] { statements }.
Конкретная структура определения класса выглядит следующим образом:
class name [:meta_class] [extends super_class...]
Если meta_class не указан, по умолчанию используется type, если super_class не указано, по умолчанию используется object.
struct NAME { [[protected NAME;] | [NAME;]]* }.
Определения структуры также относятся к явным определениям. В структуре можно определить защищённые члены, которые нельзя изменить вне связанной функции.
namespace NAME { statements }
Определение пространства имён также относится к явным определениям.
NAME ':=' expression ';'
Операторы загрузки и импорта.
import оператор.
import [NAME] STRING [(NAME [, NAME]*)];
Различные структуры import оператора следующие:
import [alias] module_path [(mumber...)];
Импорт оператора будет импортировать модуль в local. Если указан alias, имя модуля будет изменено на указанное псевдоним. Если указаны member, будут импортированы соответствующие члены модуля. При одновременном указании alias и member возникнет синтаксическая ошибка.
Например:
import 'a' (a, b);
import x 'a';
load STRING;
Load оператор используется для импорта всех экспортированных членов модуля в local.
#py_statement
Встраиваемый код Python будет напрямую скомпилирован в соответствующее дерево синтаксиса Python.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )