1
新的Python和尚未使用或遇到__builtin__
和很好奇什么下面的代码实际上是这样做的:使用理解尝试,除非__builtin__
import sys
try:
import __builtin__
input = getattr(__builtin__, 'raw_input')
except (ImportError, AttributeError):
pass
username = input("username: ")
password = input("password: ")
这段代码基本上检查是否不是脚本正在运行Python 2或Python 3,如果它是Python 2,input()
转换为raw_input()
?
Thx为答案。你能解释一下还是说明为什么我发布的代码写得不好吗?它打算做什么过于复杂? – AdjunctProfessorFalcon
@ Malvin9000:是的,非常。没有必要导入'__builtin__'(见答案),如果你进行导入(只需编写'__builtin __。raw_input'),不需要使用'getattr()',并且不需要捕获'AttributeError'(3.x在你达到那个点之前会引发'ImportError')。 – Kevin