我有两个主要包含相同代码的函数。如果传入的数组包含所有正数,则返回“True”,而如果数组包含可被10整除的所有数字,则返回“True”。
我想将这两个函数组合成这样的函数:
def master_function(array, function):
for i in array:
if function:
result = True
else:
result = False
break
print(result)
return result
唯一可能变化的部分是If语句中的“function”。当我用缺失的行编写函数时,它们不会在程序执行时被调用。
def positive_integers(array):
i >= 0
def divisible_by_10(array):
i%10 == 0
也不会执行测试代码。
master_function([10,20,30,35],divisible_by_10)
答案 0 :(得分:1)
您的功能没有返回任何内容,您需要授予他们访问i
的权限:
def positive_integers(i):
return i >= 0
def divisible_by_10(i):
return not i%10
def master_function(array, function):
for i in array:
if function(i):
result = True
else:
result = False
break
print(result)
return result
答案 1 :(得分:1)
def positive_integers(array):
return all(i >= 0 for i in array)
def divisible_by_10(array):
return all(i % 10 == 0 for i in array)
def master_function(array, function):
return function(array)
答案 2 :(得分:0)
def master_function(array, function):
for i in array:
print str(i)
if function(i):
result = True
else:
result = False
print(result)
return result
def positive_integers(i):
if i >= 0:
return True
def divisible_by_10(i):
if i%10 == 0:
return True
master_function([10,20,30,35],divisible_by_10)