2016-04-22 48 views
0

我有两个函数,其中大部分都包含相同的代码。如果数组中包含所有正数,则返回“True”,而如果数组包含可以被10整除的所有数字,则返回“True”。我可以在Python中创建一个主函数来获取其他函数的一行代码吗?

我想将这两个函数组合成如下函数:

def master_function(array, function): 
    for i in array: 
     if function: 
      result = True 
     else: 
      result = False 
      break 
     print(result) 
     return result 

唯一会改变的部分是If语句中的“函数”。当我使用缺少的行编写函数时,它们不会在程序执行时被调用。

def positive_integers(array): 
    i >= 0 

def divisible_by_10(array): 
    i%10 == 0 

也不执行测试代码。

master_function([10,20,30,35],divisible_by_10) 

回答

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

你的函数不返回任何东西。此外,您还需要了解allany

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) 
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) 
相关问题