我了解到exit
不是Python中的关键字,
import keyword
print('exit' in keyword.kwlist) # Output: False
但是在使用它时没有提醒NameError: name 'exit' is not defined
。以下代码段的输出让我感到困惑。谁能帮我吗?
for i in range(5):
print(i)
cur=i if i<2 else exit
print(cur)
# Output
0
1
2
3
4
Use exit() or Ctrl-D (i.e. EOF) to exit
除exit
外,我无法从Python文档中获取有关exit([code=None])
的相关信息。
关键字是python语法的一部分。它们通常在陈述中具有特殊含义(例如for
,del
,if
......)。这有其他后果 - 例如您不能使用与关键字相同的名称创建变量。
builtins是callable objects(例如函数或至少类似函数),python默认在命名空间中提供。内置函数的例子是像sorted
,id
,vars
,...
值得注意的是,exit
在交互式会话中提供了便利。我们强烈建议使用sys.exit
代替。
exit
是Quitter
类的一个例子。 Quitter
类定义了一个__repr__
方法,该方法返回在将exit
键入shell时看到的字符串。它还定义了__call__
方法。正如在使用类似函数的类时调用__init__
一样,当像函数一样使用实例时会调用__call__
。因此,exit()
称之为退出该计划的__call__
方法。
exit
是由Built-in Constants模块添加的site
。
site
模块(在启动期间自动导入,除非给出了-S
命令行选项)向内置命名空间添加了几个常量。它们对交互式解释器shell很有用,不应在程序中使用。
当您使用交互式控制台时,exit
是sys.exit
函数。
很多东西存在而不是关键词(例如sum
,int
......)。因此,您可以绑定到现有名称,但不能绑定到关键字