gpt4 book ai didi

python-2.7 - python中退出和退出的区别

转载 作者:行者123 更新时间:2023-12-03 14:12:48 30 4
gpt4 key购买 nike

有人能告诉我内置函数 exit() 和 quit() 有什么区别吗?

如果我在任何时候错了,请纠正我。我试图检查它,但我没有得到任何东西。

1) 当我分别使用 help() 和 type() 函数时,它说它们都是 Quitter 类的对象,它在模块 site 中定义.

2) 当我使用 id() 检查每个地址时,它返回不同的地址,即它们是同一类的两个不同对象 site.Quitter .

>>> id(exit)
13448048
>>> id(quit)
13447984

3)并且由于地址在后续调用中保持不变,即它不是每次都使用返回包装器。
>>> id(exit)
13448048
>>> id(quit)
13447984

任何人都可以向我提供有关这两者之间差异的详细信息,如果两者都在做同样的事情,为什么我们需要两个不同的功能。

最佳答案

简短的回答是 : 两个退出() 退出() 是相同 的实例退出 class,区别仅在于命名,必须添加以增加解释器的用户友好性。

更多详情 让我们看看来源:http://hg.python.org/cpython

Lib/site.py (python-2.7)我们看到以下内容:

def setquit():
"""Define new builtins 'quit' and 'exit'.

These are objects which make the interpreter exit when called.
The repr of each object contains a hint at how it works.

"""
if os.sep == ':':
eof = 'Cmd-Q'
elif os.sep == '\\':
eof = 'Ctrl-Z plus Return'
else:
eof = 'Ctrl-D (i.e. EOF)'

class Quitter(object):
def __init__(self, name):
self.name = name
def __repr__(self):
return 'Use %s() or %s to exit' % (self.name, eof)
def __call__(self, code=None):
# Shells like IDLE catch the SystemExit, but listen when their
# stdin wrapper is closed.
try:
sys.stdin.close()
except:
pass
raise SystemExit(code)
__builtin__.quit = Quitter('quit')
__builtin__.exit = Quitter('exit')

我们在 python-3.x 中看到的相同逻辑。

关于python-2.7 - python中退出和退出的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19288707/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com