在函数中切换两个参数的顺序

时间:2017-06-13 09:33:04

标签: python

是否有一种标准方法可以切换参数传递给函数的顺序?

例如

def verse_maker(sent1, sent2):
    do stuff

verse_maker(arg1, arg2)

切换参数的位置,以便:

verse_maker(arg2, arg1)

编辑:我的意思是说,无需再次手动调用该函数。我希望函数在这两种不同的配置中使用参数运行两次。

2 个答案:

答案 0 :(得分:3)

你应该可以这样做:

def verse_maker(sent1, sent2):
  do stuff

verse_maker(sent2=arg2, sent1=arg1)

但我不明白为什么你不简单地交换args?它短得多

编辑:看到你的编辑,我不确定你在说什么,你希望代码运行两次而不调用它两次?我想你可以在代码中放一个循环,这样它运行2次并在第一个循环结束时交换参数?

编辑2:所以我认为你正在寻找

def verse_maker(sent1, sent2):
  for i in range(2):
    do stuff
    sent2, sent1 = sent1, sent2

这将在循环结束时交换变量,并重新运行带有交换变量的代码

答案 1 :(得分:1)

正如我在评论中提到的,恕我直言提供的解决方案有效,但它具有将循环置于函数本身内的副作用。我想建议这样做

def verse_maker(sent1, sent2):
    do stuff

for i in range(0,2):
    verse_maker(arg1, arg2)
    arg1, arg2 = arg2, arg1

我刚刚从函数中取出循环并将其放在我们调用它的位置。这样,我们称这个函数多少次都没关系。它总会产生预期的结果。