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

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) 由于地

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

如果我有什么地方错了,请纠正我。我已经试着检查过了,但是什么也没有得到

1) 当我对每一个使用help()和type()函数时,它都表示它们都是类Quitter的对象,该类在模块
站点
中定义

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