有没有办法创建一个函数,该函数将 运行 此代码但不传递那么多参数?

Is there a way to create a function that will run this code but without passing so many arguments?

我正在尝试使我项目中的代码更高效、更短但不难 read/understand。

我看到有些动作在代码中重复了几次。这是一个游戏,所以需要重复这些。 我想也许我应该创建一个每次都调用的函数,但它看起来不太好读,因为在一个条件下,我需要更改几个变量,所以我需要将它们全部传递给函数。

这是一个例子:

if nxtTurn == 'player1':
    card2, player1 = EgyptionWarHelper.pull_out_card(player1, nxtTurn)
    storage.append(card2)
    nxtTurn = 'player2'
else:
    card2, player2 = EgyptionWarHelper.pull_out_card(player2, nxtTurn)
    storage.append(card2)
    nxtTurn = 'player1'

我想创建一个执行此操作的函数,但后来意识到我需要将所有变量传递给它,然后 return 在它的末尾有一个包含 2 个变量的元组。我确实听说过全局变量,但我从未真正使用过它们,我不知道它们是否是解决此问题的方法。

编辑:我发现我不必传递一些参数,所以在我编辑函数并使用临时变量后,代码更具可读性。

此外,如评论所述,我不必 return playerplayer2 因为 python 通过引用而不是通过价值.

为什么不使用临时变量?

if nxtTurn == 'player1':
    player = player1
    nxtTurn = 'player2'
else:
    player = player2
    nxtTurn = 'player1'
  
card2, player1 = EgyptionWarHelper.pull_out_card(player, nxtTurn)
storage.append(card2)

它易于阅读和维护。