我正在设置一个脚本,我需要创建一个if语句,如果另一个函数没有返回错误,则if语句为True。
目前,我已经尝试过:
def function1():
try:
doSomething()
return A (not a bool here)
except:
return 'Error'
raise
if function1() != 'Error':
print(True)
我正在寻找一种避免在return 'Error'
中使用function1
的方法。
从字面上看,我正在尝试获得:
if 'there is no error' in function1():
print(True)
答案 0 :(得分:1)
只需在函数中返回True或False:
SchedulerLike
答案 1 :(得分:1)
关于它的方法并不太多。指示错误的pythonic方式是异常,因此应该是:
def function1():
doSomething()
return A
try:
function1()
except Exception:
print('An error occurred')
else:
print(True)
如果您出于某种原因不喜欢异常,唯一的选择是将成功或失败归因于返回值,通常您会返回任何 truthy 成功值, falsey 失败值:
def function1():
try:
doSomething()
return A
except:
return False
if function1():
print(True)
只要A
是任何东西– truthy ,例如任何对象,都可以。
答案 2 :(得分:0)
仅返回一个元组而不是单个值,其中第一个元素是错误,如果成功则返回None:
def function1():
try:
result = doSomething()
return None, result
except:
return 'Error', None
err, result = function1()
if not err:
print('ok')
doNext(result)
else:
print(err)
答案 3 :(得分:-1)
仅当条件为True时,代码中的if语句才执行,这意味着当function1不等于'Error'时,从字面上看,function1返回'Error'就是为什么它不输出True。
答案 4 :(得分:-1)
if 'there is no error' in function1():
表示function1()返回true。因此,如果发生错误,则应返回false。所以我会做:
def function1():
try:
doSomething()
return True
except:
return False
由于您的A不是布尔值,所以我会像在Golang中一样:返回2个值
def function1():
try:
doSomething()
return A, False
except:
return None, True
A, error = function1()
if not error:
# this mean A is not None
另一种解决方案:
def function1():
try:
doSomething()
return A
except:
return None
if function1():
# No error