在Python中将两个相似的代码段合并在一起

在Python中将两个相似的代码段合并在一起,python,Python,我对python非常陌生,并且对当前正在编写的代码有问题。正如您在我下面的代码中所看到的,它基本上是相同的,唯一能将两者分开的是播放器/对手角色,我想将这两个合并在一起,但我不知道如何合并。任何建议都将不胜感激!(如果self.legalMove(playerTile,opponentile,x,y)=False:,我不能只放入) 我也不希望在def…Move中同时包含self、playerTile和opponentile,因为我只想调用代码中的定义,例如:playerMove(playerTi

我对python非常陌生,并且对当前正在编写的代码有问题。正如您在我下面的代码中所看到的,它基本上是相同的,唯一能将两者分开的是
播放器/对手角色
,我想将这两个合并在一起,但我不知道如何合并。任何建议都将不胜感激!(如果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,它还会起作用吗@丹尼尔罗斯曼:是的。区别在于你传递给它的是什么,而不是方法内部的调用。是的,我现在解决了