如果发现异常,我会回来None
。
def getObject(ver):
av = None
try:
av = getTestObject(ver)
except exceptions.ObjectNotFound, err:
_log.info("%r not Found", obj.fromTestObject(ver))
return av
或者这更好?
def getObject(ver):
try:
av = getTestObject(ver)
except exceptions.ObjectNotFound, err:
_log.info("%r not Found", obj.fromTestObject(ver))
else:
return av
答案 0 :(得分:2)
与您的第一个代码段等效的更短(更多Pythonic,恕我直言)如下:
def getObject(ver):
try:
return getTestObject(ver)
except exceptions.ObjectNotFound, err:
_log.info("%r not Found", obj.fromTestObject(ver))
这是有效的,因为如果控件到达函数的末尾而没有遇到None
,python函数会隐式返回return
。(如果你的异常被捕获就会出现这种情况)。
答案 1 :(得分:-1)
第一个代码更好。
原因:
在将返回值设置为变量av。
之前可能会发生异常在第一个代码中,如果发生异常,将返回None。在第二个代码中,如果发生异常,则返回值未定义。
没有比未定义更好的返回值。