要查看Python关键字(保留字)的列表,使用关键字

商业

在标准库的关键字模块中可以找到Python关键字(保留字)的列表。

关键词(保留字)不能作为变量名、函数名、类名等的名称(标识符)。

这里提供了以下信息。

  • 获得一个Python关键字(保留字)的列表。keyword.kwlist
  • 检查字符串是否是一个关键字(保留字)。keyword.iskeyword()
  • 关键字和保留字的区别

如上一节所述,关键词和保留词是严格不同的概念。

下面的示例代码使用Python 3.7.3。注意关键字(保留字)可能因版本不同而不同。

获取Python关键字(保留字)的列表:keyword.kwlist

keyword.kwlist包含了Python中关键词(保留词)的列表。

在下面的例子中,为了使输出更容易阅读,使用了pprint。

import keyword
import pprint

print(type(keyword.kwlist))
# <class 'list'>

print(len(keyword.kwlist))
# 35

pprint.pprint(keyword.kwlist, compact=True)
# ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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']

列表中的元素是字符串。

print(keyword.kwlist[0])
# False

print(type(keyword.kwlist[0]))
# <class 'str'>

如果你试图使用这些名字作为标识符(变量名、函数名、类名等),你会得到一个错误。

# True = 100
# SyntaxError: can't assign to keyword

检查字符串是否是一个关键字(保留字):keyword.iskeyword()

你可以通过使用keyword.iskeyword()来检查一个字符串是否是一个关键词(保留字)。

当你指定你要检查的字符串作为参数时,如果它是一个关键字,它将返回真,如果不是,则返回假。

print(keyword.iskeyword('None'))
# True

print(keyword.iskeyword('none'))
# False

关键字和保留字的区别

虽然我们一直在使用它们而不做任何区分,但严格来说,关键词和保留词是两个不同的概念。

  • 关键词:语言规范中具有特殊意义的词语
  • 保留字:满足作为字符串的标识符规则,但不能作为标识符使用的字。

更多细节见以下链接,包括例子,如goto是一个保留字,但在Java中不是一个关键词。

In a computer language, a reserved word (also known as a reserved identifier) is a word that cannot be used as an identifier, such as the name of a variable, function, or label – it is “reserved from use”. This is a syntactic definition, and a reserved word may have no user-define meaning.
A closely related and often conflated notion is a keyword, which is a word with special meaning in a particular context. This is a semantic definition. By contrast, names in a standard library but not built into the language are not considered reserved words or keywords. The terms “reserved word” and “keyword” are often used interchangeably – one may say that a reserved word is “reserved for use as a keyword” – and formal use varies from language to language; for this article we distinguish as above.
Reserved word – Wikipedia

Keywords have a special meaning in a language, and are part of the syntax.
Reserved words are words that cannot be used as identifiers (variables, functions, etc.), because they are reserved by the language.
language agnostic – What is the difference between “keyword” and “reserved word”? – Stack Overflow

在Python中(至少从Python 3.7开始),所有的关键字都是保留字,除了关键字之外没有其他的保留字,所以使用它们是安全的,不用做任何区分。

关于可用作标识符的名称,也请参见以下文章。