如果遇到某种情况,是否可以从子函数返回值



我想知道,如果调用方函数调用的某个函数遇到某种条件,但调用方函数中没有任何条件,是否可以从函数返回值。这听起来有点乱,所以我试着举一个例子。

def called_function(number):
number += 29
if number % 10 == 0:
return False     # This returns False straight to total_of_vals variable
return number         # This should work without if condition in caller function

def caller_function(number_list):
total = 0
for number in number_list:
number = called_function(number)
if number is False:    # This condition to be removed
return number
total += number
return total

if __name__ == '__main__':
total_of_vals = caller_function([5, 23, 23, 41, 4])
if total_of_vals is False:
print('Some error occurred')
print(f'TOTAL : {total_of_vals}')

这是一个计算和使用if条件的示例,但是,当有更广泛的函数相互调用时,从某个函数返回需要在每个调用方函数中添加if语句。

有没有任何方法可以强制python直接从任何被调用的函数返回False值?

这是使用raise而不是return False的示例

def called_function(number):
number += 29
if number % 10 == 0:
raise ValueError(f'{number} is invalid')
return number

def caller_function(number_list):
total = 0
for number in number_list:
number = called_function(number)
total += number
return total

if __name__ == '__main__':
try:
total_of_vals = caller_function([5, 23, 23, 41, 4])
except ValueError as e:
print(f'Some error occurred: {e}')
else:
print(f'TOTAL : {total_of_vals}')

最新更新