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