有没有办法创建一个函数,该函数将 运行 此代码但不传递那么多参数?
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 player
和 player2
因为 python 通过引用而不是通过价值.
为什么不使用临时变量?
if nxtTurn == 'player1':
player = player1
nxtTurn = 'player2'
else:
player = player2
nxtTurn = 'player1'
card2, player1 = EgyptionWarHelper.pull_out_card(player, nxtTurn)
storage.append(card2)
它易于阅读和维护。
我正在尝试使我项目中的代码更高效、更短但不难 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 player
和 player2
因为 python 通过引用而不是通过价值.
为什么不使用临时变量?
if nxtTurn == 'player1':
player = player1
nxtTurn = 'player2'
else:
player = player2
nxtTurn = 'player1'
card2, player1 = EgyptionWarHelper.pull_out_card(player, nxtTurn)
storage.append(card2)
它易于阅读和维护。