FPDEF和TFPDEF在Python语法中意味着什么?

时间:2019-07-05 09:43:14

标签: python grammar

我阅读了Python的语法文件(https://docs.python.org/3/reference/grammar.html),但我不明白TFPDEF和FPDEF的含义。我希望你能帮助我:)

enter image description here

2 个答案:

答案 0 :(得分:0)

Python 3.8 version上有更多评论对此进行了解释

它们基本上只是NAMET变体具有可选的类型声明),因此:

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

答案 1 :(得分:0)

根据[Python 3]: Full Grammar specification中此类标识符的命名方式,可以得出以下结论(因为我没有看到任何正式声明):

  • tfpdef

    • 用于描述类型化的参数( typedargslist 元素)
    • 适用于以下情况的立场: t 键入 f 联合 p 参数 def 设置
  • fpdef

    • 没有看到它,但是它可能引用了一个参数或参数(通常)

还有一个 vfpdef (用于描述 vararg )。我想 v 的来源很明显。