Skip to main content
 首页 » 编程设计

python之Python 中的可变函数调用

2025年05月04日11三少

我正在设计一种工具,可以递归地识别矢量河流网络中的上游路径。如果累积路径成本通过了用户定义的测试,我希望能够截断搜索,但我不确定这是否可行。下面是我想做的事情的一个例子:

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