我正在设计一种工具,可以递归地识别矢量河流网络中的上游路径。如果累积路径成本通过了用户定义的测试,我希望能够截断搜索,但我不确定这是否可行。下面是我想做的事情的一个例子:
def test1(value):
if value > 1: return True
else: return False
def test2(value):
if value % 4: return True
else: return False
def main(test):
for i in range(20):
if SPECIFIEDTEST(i):
print i
break
main(test1)
我知道 exec() 可以用于此目的,但我也知道这是不受欢迎的?是否有另一种更好的方法将一个函数传递给另一个函数?
请您参考如下方法:
不需要为此构建字典,因为函数可以作为参数传递给其他函数。只需将函数传递给 main()
def test1(value):
if value > 1: return True
else: return False
def test2(value):
if value % 4: return True
else: return False
# using test1 as the default input value...
def main(test = test1):
for i in range(20):
if test(i):
print i
break
main(test1)
# prints 2
main(test2)
# prints 1
