如果我从sys导入exit(),它将运行哪个出口?

时间:2015-02-20 03:18:44

标签: python

在python中,如果我从sys导入退出模块,它将运行正常的exit()或sys.exit()

from sys import exit
print "Bla bla bla"
exit()

1 个答案:

答案 0 :(得分:2)

from a import b将名为b的变量分配给导入的对象,因此您将内置的exit蒙上阴影。

您也可以打印出exit的字符串表示来查看此内容。运行

print(exit, type(exit))
from sys import exit
print(exit, type(exit))

看:

(Use exit() or Ctrl-D (i.e. EOF) to exit, <class 'site.Quitter'>)
(<built-in function exit>, <type 'builtin_function_or_method'>)

当然,很少有理由掩盖内置内容。为什么不

import sys
sys.exit()

代替?