在Python中将两个相似的代码段合并在一起
我对python非常陌生,并且对当前正在编写的代码有问题。正如您在我下面的代码中所看到的,它基本上是相同的,唯一能将两者分开的是在Python中将两个相似的代码段合并在一起,python,Python,我对python非常陌生,并且对当前正在编写的代码有问题。正如您在我下面的代码中所看到的,它基本上是相同的,唯一能将两者分开的是播放器/对手角色,我想将这两个合并在一起,但我不知道如何合并。任何建议都将不胜感激!(如果self.legalMove(playerTile,opponentile,x,y)=False:,我不能只放入) 我也不希望在def…Move中同时包含self、playerTile和opponentile,因为我只想调用代码中的定义,例如:playerMove(playerTi
播放器/对手角色
,我想将这两个合并在一起,但我不知道如何合并。任何建议都将不胜感激!(如果self.legalMove(playerTile,opponentile,x,y)=False:,我不能只放入)
我也不希望在def…Move中同时包含self、playerTile和opponentile
,因为我只想调用代码中的定义,例如:playerMove(playerTile)
(如果我这样做,会弹出一个ValueError)
这些方法似乎完全相同。你只需要一个
将其重命名为:
def move(self, tile)
您可以在这两种情况下使用它。这些方法似乎完全相同。你只需要一个
将其重命名为:
def move(self, tile)
您可以在这两种情况下都使用它。如果它是相同的,您只需传递要移动的实体即可
def entity_move(self,entity_tile):
possibilities = '0 1 2 3 4 5 6 7 8 9'.split()
while True:
move = input().lower()
if len(move) == 2 and move[0] in possibilities and move[1] in possibilities:
x = int(move[0])
y = int(move[1])
if self.legalMove(entity_tile, x, y) == False:
continue
else:
break
else:
print('Not a valid input!')
如果相同,则只需传递要移动的实体
def entity_move(self,entity_tile):
possibilities = '0 1 2 3 4 5 6 7 8 9'.split()
while True:
move = input().lower()
if len(move) == 2 and move[0] in possibilities and move[1] in possibilities:
x = int(move[0])
y = int(move[1])
if self.legalMove(entity_tile, x, y) == False:
continue
else:
break
else:
print('Not a valid input!')
但这些完全一样。唯一的区别是您将传入的参数命名为什么,但Python不在乎您如何称呼它。只需将其命名为“tile”。问题是我需要分别使用这两个tile,同时在结束时计算对手和玩家的得分。如果我不定义playerTile和opponentile,它还会起作用吗@丹尼尔罗斯曼:是的。区别在于你传递给它的是什么,而不是它在方法中的调用。是的,我现在已经解决了,但它们完全相同。唯一的区别是您将传入的参数命名为什么,但Python不在乎您如何称呼它。只需将其命名为“tile”。问题是我需要分别使用这两个tile,同时在结束时计算对手和玩家的得分。如果我不定义playerTile和opponentile,它还会起作用吗@丹尼尔罗斯曼:是的。区别在于你传递给它的是什么,而不是方法内部的调用。是的,我现在解决了