Python 2.7 python中退出和退出的区别
有人能告诉我内置函数exit()和quit()的区别吗 如果我有什么地方错了,请纠正我。我已经试着检查过了,但是什么也没有得到 1) 当我对每一个使用help()和type()函数时,它都表示它们都是类Quitter的对象,该类在模块Python 2.7 python中退出和退出的区别,python-2.7,Python 2.7,有人能告诉我内置函数exit()和quit()的区别吗 如果我有什么地方错了,请纠正我。我已经试着检查过了,但是什么也没有得到 1) 当我对每一个使用help()和type()函数时,它都表示它们都是类Quitter的对象,该类在模块站点中定义 2) 当我使用id()检查每个对象的地址时,它会返回不同的地址,即这是同一类的两个不同对象site.Quitter >>> id(exit) 13448048 >>> id(quit) 13447984 3) 由于地
站点
中定义
2) 当我使用id()检查每个对象的地址时,它会返回不同的地址,即这是同一类的两个不同对象site.Quitter
>>> id(exit)
13448048
>>> id(quit)
13447984
3) 由于地址在随后的调用中保持不变,即每次都不使用返回包装器
>>> id(exit)
13448048
>>> id(quit)
13447984
有谁能告诉我这两者之间的区别,如果两者都在做相同的事情,为什么我们需要两个不同的函数。简单的回答是:退出()和退出()都是相同的退出者类的实例,区别仅在于命名,必须添加这一点,以提高口译员的用户友好性 有关更多详细信息让我们查看来源: 在这方面,我们看到以下情况:
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中看到的相同逻辑。文档强烈地暗示了它们是相同的:那么为什么我们需要两个不同的函数,它们是相同的,为什么它们返回不同的ID..您假设这是有原因的。我猜这个解释很平淡。这两个名称都有,因为在解释器中,它更易于使用,因为您不必记住它是哪个名称。它们是不同的ID,因为有人这样编码,认为它是一个还是两个都没有区别。这似乎与禅宗的说法相矛盾:“应该只有一个方法……”我把你的答案从995提高到1005