在Python 3中动态传递函数中的参数

时间:2015-11-15 01:25:01

标签: python python-3.x arguments parameter-passing

当我调用函数时,python是否支持动态参数传递?

  import itertools.product
  l = [1,2,3,95,5]
  for i in range(5):
      for n in itertools.product(l,l):
         #calculations that
         #reduce set size

我希望通过产品的迭代:

  

i = 1:产品(l,l)

     

i = 2:产品(l,l,l)

     

i = 3:产品(l,l,l,l)

     

...

如果我能够正确回忆起我所知道的唯一支持这种功能的语言就是PHP。

1 个答案:

答案 0 :(得分:3)

itertools.product接受可选的关键字参数repeat

所以,你可以这样做:

for n in itertools.product(l, repeat=i+1):
    ...

或者,要动态传递参数,您可以使用*args(请参阅Unpacking argument lists):

for n in itertools.product(*([l] * (i+1))):
    ...