我正在使用python 2.7,但試圖做一個代碼來檢查一個對象是否是與python 3+兼容的basestring的子類。我試圖採取的辦法suggested here並在此過程中發現一個行爲,我不明白異常處理中這種奇怪的行爲是什麼?
如果我做的:
def foo():
try: basestring
except NameError:
print "a"
foo()
沒有任何反應。
如果我稍微修改剛內除了代碼:
def foo():
try: basestring
except NameError:
print "a"
basestring=str
foo()
然後 「a」 被打印。
我不明白如何在except塊中添加某些東西會影響異常的觸發。
我查了相同的代碼的功能外:
try:
basestring
except NameError:
print("a")
basestring=str
,但沒有被印刷在這種情況下。
」**請注意,函數本地的名稱是在函數定義時確定的**「 這正是我錯過的!謝謝! – alvarosg