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

Python 切换函数中两个参数的顺序,python,Python,有没有标准的方法来切换参数传递到函数的顺序 例如 def verse_maker(sent1, sent2): do stuff verse_maker(arg1, arg2) 切换参数的位置,以便: verse_maker(arg2, arg1) 编辑:我的意思是,不必再次手动调用该函数。我希望函数使用这两种不同配置中的参数运行两次。您应该能够执行以下操作: def verse_maker(sent1, sent2): do stuff verse_maker(sent2=

有没有标准的方法来切换参数传递到函数的顺序

例如

def verse_maker(sent1, sent2):
    do stuff

verse_maker(arg1, arg2)
切换参数的位置,以便:

verse_maker(arg2, arg1)

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

您应该能够执行以下操作:

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

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

,正如我在注释中所提到的,所提供的解决方案是有效的,但它的副作用是将循环放在函数本身内部。我想提出这个建议

def verse_maker(sent1, sent2):
    do stuff

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

我只是把循环从函数中取出来,放在我们调用它的地方。这样,我们调用这个函数多少次都无关紧要。它将始终产生所需的结果。

是。交换函数中参数的顺序。我是不是遗漏了什么?我想没有比你写的更简单的方法了?。。但是我不希望你的程序能正常运行。。你想实现什么?不,没有标准的方法在顺序交换的情况下调用函数两次。一个小问题,为什么不将循环放在调用函数中而不是被调用函数中。这样被调用的函数就不会产生副作用。我把它放在函数中,因为OP似乎想在其他点调用函数,每次都让它在参数的两个顺序上调用函数。当然你是对的,如果你只想做一次,你会把for循环放在函数调用本身周围。但是OP说他们不想多次调用这个函数,所以我使用了函数内部的循环,这正是我的观点。如果我们从被调用函数中取出循环并将其放在调用函数中,那么调用函数一次还是两次都无关紧要。我们可以做任何我们想做的事情,但是函数作为一个
原子单元
,将始终按预期工作。你怎么看?我同意保持功能完整。我的逻辑是,如果OP不想写两次调用函数,他就不会想每次需要调用时都写一个for循环。但是,是的,在良好的实践中,您应该保持被调用函数的完整性,我只是有一种感觉,这不是OP想要的。一旦我们听到OP的消息,我会很高兴地编辑它,看看他说了些什么。我添加了另一种方法:)