'exit'不是Python中的关键字,但使用它时不会发生错误

问题描述 投票:3回答:4

我了解到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 exit ternary-operator
4个回答
5
投票

关键字是python语法的一部分。它们通常在陈述中具有特殊含义(例如fordelif ......)。这有其他后果 - 例如您不能使用与关键字相同的名称创建变量。

builtins是callable objects(例如函数或至少类似函数),python默认在命名空间中提供。内置函数的例子是像sortedidvars,...

值得注意的是,exit在交互式会话中提供了便利。我们强烈建议使用sys.exit代替。


3
投票

exitQuitter类的一个例子。 Quitter类定义了一个__repr__方法,该方法返回在将exit键入shell时看到的字符串。它还定义了__call__方法。正如在使用类似函数的类时调用__init__一样,当像函数一样使用实例时会调用__call__。因此,exit()称之为退出该计划的__call__方法。


1
投票

exit是由Built-in Constants模块添加的site

site模块(在启动期间自动导入,除非给出了-S命令行选项)向内置命名空间添加了几个常量。它们对交互式解释器shell很有用,不应在程序中使用。


0
投票

当您使用交互式控制台时,exitsys.exit函数。

很多东西存在而不是关键词(例如sumint ......)。因此,您可以绑定到现有名称,但不能绑定到关键字

© www.soinside.com 2019 - 2024. All rights reserved.