首页 > 解决方案 > 是否有任何选项可以创建使用可变数量参数的函数?

问题描述

所以我尝试创建可以生成序列后续单词的函数。

例如:

我有这样的功能:

def next_even(a):
     return a + 2

我必须像这样构建生成器:

def seq_gen(fun,*args):
  counter = 0
  x=args[counter]

  while(True):

    yield x
    x = fun(x)
    #x=1,y=1
    #x=1,y=2
    #x=2,y=3

g = seq_gen(next_even,0);

当我使用print(next(g)) 它会返回:

0;
2;
4;
6;
...

但是我尝试创建sen_gen()可以与其他功能一起使用的功能。例如斐波那契:

def next_fib(a,b):
  return a+b

def seq_gen(fun,*args):
  counter = 0
  x=args[counter]
  y=args[counter+1]
  while(True):

    yield x
    x, y = y, fun(x,y)
    #x=1,y=1
    #x=1,y=2
    #x=2,y=3

g = seq_gen(next_fib,0,1);

当我使用print(next(g)) 它会返回:

0;
1;
1;
2;
3;
5;

......

我应该使用什么来创建sen_gen()可以与可变类型函数一起使用的唯一性?

标签: pythonloopsiterationgeneratoryield

解决方案


推荐阅读