代码之家  ›  专栏  ›  技术社区  ›  multigoodverse

python中真正的关键字是什么?

  •  2
  • multigoodverse  · 技术社区  · 7 年前

    我们可以得到如下的python关键字列表:

    >>> import keyword
    >>> keyword.kwlist
    ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
    

    很酷,但我没想到 False , None True 那里。它们是内置对象。

    为什么是 , 没有 关键词,但 int 不是吗?在python中,什么东西真正成为关键字?

    编辑:我说的是python 3

    3 回复  |  直到 7 年前
        1
  •  8
  •   Daniel Roseman    7 年前

    关键字是保留名称,因此不能分配给它们。

    >>> True = 0
      File "<stdin>", line 1
    SyntaxError: can't assign to keyword
    

    int 是一种类型;完全可以重新分配它:

    >>> int = str
    >>>
    

    (不过,我真的不推荐这样做。)

        2
  •  1
  •   Benoît P    7 年前

    python不像javascript。在JavaScript中,您可以执行以下操作 undefined = "defined" (更新:已修复)。

    关键字取决于您使用的Python。前任: async 是中的新关键字 3.7 .

    但在python 2中,情况并不总是这样。 True = False 是有效的…

    >>> True = False
    >>> True
    False
    >>> True is False
    True
    

    所以“它们是内置对象。”,是的,但是新版本的python阻止了你的愚蠢。这就是为什么…

    新的关键字(从python 2.7开始)是:

    False
    None
    True
    async
    await
    nonlocal
    

    当然 exec print 不再是关键字。

        3
  •  0
  •   kederrac    7 年前

    在python 2.6中,您可以执行诸如true=false之类的操作(非常令人困惑)

    这对你有帮助 link