【问题标题】:Defining a function name that starts with a number (in Python 3)?定义一个以数字开头的函数名(在 Python 3 中)?
【发布时间】:2012-11-25 04:27:01
【问题描述】:

我尝试创建以下函数: def 3utr(): do_something()。 但是,我得到一个 SyntaxError。将“3”替换为“三”可以解决问题。

我的问题是:

  • 为什么是语法错误?
  • 有没有办法在 Python 3 中让函数名以数字开头?

【问题讨论】:

    标签: python-3.x syntax-error


    【解决方案1】:

    这是一个语法错误,因为语言规范不允许标识符以数字开头。所以 Python 中不可能有以数字开头的函数名(即标识符)。

    identifier ::= (letter|"_") (letter | digit | "_")*

    Python 2 Language Reference

    在 ASCII 范围内 (U+0001..U+007F),标识符的有效字符与 Python 2.x 中的相同:大写和小写字母 A 到 Z、下划线 _ 和 除了第一个字符,数字 0 到 9

    Python 3 Language Reference

    【讨论】:

    • 谢谢!我是编程新手,所以我发现通常很难知道在哪里可以找到这些细节(无需阅读本书的每一页;)。
    【解决方案2】:

    一种解决方法是使用罗马数字:

    >>> def xxiv():
    ...     print("ok\n")
    ... 
    >>> xxiv()
    ok
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 2019-05-27
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多