Skip to main content
 首页 » 编程设计

python之是否可以根据不同的输入信息创建函数

2025年05月04日22oomusou

我有以下问题,请问有没有解决办法。

因为我刚刚了解到函数可以是 python 中的变量,所以我想知道是否可以设计一个函数来根据输入创建不同的函数。

比方说,我们有一长串字符: longlist = abcdefghijklmnopqrstuvwxyz

给定一个测试列表,test = [1,2,3]

函数 (func1) 可以读取测试列表作为输入 并返回函数 (func2) 作为输出。 此函数可用于将一长串字符分成不同的组并打印出来 a,bc,def,g,hi,jkl,o,pq.... 遵循测试列表 1,2,3 模式并再次重复。

如果测试列表是test = [1,2,3,4]

然后 func1(test) --> func2 func2(longlist) 打印出 a,bc,def,ghij,k,lm,n

在这种情况下,它遵循 1,2,3,4,1,2... 模式

我做的例子看起来不是很有趣,但根本问题是是否可以根据不同的输入信息创建函数?

请您参考如下方法:

是的。这称为闭包。内部函数 (func2) 保留它定义的范围。试试这个:

def func1(x): 
    def func2(y): 
        ret = [] 
        for f in x * len(y): 
            ret += [y[:f]] 
            y = y[f:] 
            if not y:  
                return ret 
    return func2 
 
print(func1([1, 2, 3, 4])('This should do what you want'))