Что FPDEF и TFPDEF означают в грамматике Python? - PullRequest
0 голосов
/ 05 июля 2019

Я читаю файл грамматики Python (https://docs.python.org/3/reference/grammar.html) и не понимаю, что означают TFPDEF и FPDEF. Надеюсь, вы мне поможете:)

enter image description here

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

На основании того, как такие идентификаторы названы в [Python 3]: полная спецификация грамматики , можно сделать вывод (как я не видел ничего официально заявленного), что:

  • tfpdef :

    • Используется для описания типизированного аргумента ( typedargslist элемент)
    • Обозначает: t yped f unction p arameter def inition
  • fpdef :

    • Не видел, но это может относиться к аргументу или параметру (в общем)

Существует также vfpdef (используется для описания vararg ).Я думаю, очевидно, откуда взято v .

0 голосов
/ 05 июля 2019

версия Python 3.8 имеет больше комментариев, объясняющих это

они в основном просто NAME s (T варианты имеют необязательное объявление ввода), поэтому:

def foo(a, b): pass

будет проанализирован с помощью следующего подмножества правил:

funcdef: 'def' NAME parameters ':' func_body_suite

parameters: '(' [typedargslist] ')'

typedargslist: tfpdef (',' tfpdef)*

tfpdef: NAME

func_body_suite: simple_stmt

simple_stmt: small_stmt NEWLINE

small_stmt: pass_stmt
...