Семантика идентификатора строки в Python

Какова семантика строки Python 2.7, содержащей ТОЛЬКО идентификатор. То есть просто

a

или же

something

?

Если вы знаете точное место в справочнике, я был бы очень рад. Tnx.

2 ответа

Сам по себе идентификатор является допустимым выражением. Само по себе выражение в строке является допустимым утверждением.

Полная семантическая цепочка немного сложнее. Чтобы иметь хороший приоритет оператора, мы классифицируем такие вещи, как "a и b", как технически and_test и or_test, В результате простой идентификатор технически квалифицируется как более десятка грамматических элементов

stmt: simple_stmt | compound_stmt
simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
small_stmt: (expr_stmt | del_stmt | pass_stmt | flow_stmt |
             import_stmt | global_stmt | nonlocal_stmt | assert_stmt)
expr_stmt: testlist_star_expr (augassign (yield_expr|testlist) |
                     ('=' (yield_expr|testlist_star_expr))*)
testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [',']
test: or_test ['if' or_test 'else' test] | lambdef
or_test: and_test ('or' and_test)*
and_test: not_test ('and' not_test)*
not_test: 'not' not_test | comparison
comparison: expr (comp_op expr)*
expr: xor_expr ('|' xor_expr)*
xor_expr: and_expr ('^' and_expr)*
and_expr: shift_expr ('&' shift_expr)*
shift_expr: arith_expr (('<<'|'>>') arith_expr)*
arith_expr: term (('+'|'-') term)*
term: factor (('*'|'/'|'%'|'//') factor)*
factor: ('+'|'-'|'~') factor | power
power: atom trailer* ['**' factor]
atom: ('(' [yield_expr|testlist_comp] ')' |
       '[' [testlist_comp] ']' |
       '{' [dictorsetmaker] '}' |
       NAME | NUMBER | STRING+ | '...' | 'None' | 'True' | 'False')

stmt может состоять из одного simple_stmt, который может быть составлен из simgle small_stmt, который может состоять из одного expr_stmtи так далее, через testlist_star_expr, test, or_test, and_test, not_test, comparison, expr, xor_expr, and_expr, shift_expr, arith_expr, term, factor, power, atom, и наконец NAME,

Это простое выражение: https://docs.python.org/2/reference/simple_stmts.html

Другие вопросы по тегам