我正在使用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