我有以下问题,请问有没有解决办法。
因为我刚刚了解到函数可以是 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'))
