如何更改不同文件的功能?

时间:2016-05-23 15:49:01

标签: python function canopy

我很好奇我是否可以在Python中更改不同文件中的函数。

psrock.py文件的作用是它从每个文件中接收两个数据,这些数据将在石头剪刀中相互对抗并决定哪个玩家获胜。当然,psrock.py文件也包含其他函数,但我只插入了一个函数,因为其他函数对我的问题并不重要。

我正在尝试编辑psrock.py文件中的函数,以便team3(有team1,team2,team3和他们彼此玩石头剪刀。)(即team1和team2互相攻击然后团队1和3之后。反之亦然))结果总是摇滚,对手的结果将是剪刀,这样无论如何,team3都可以获胜。

然而,我正在努力,不知道该怎么做.. :(我几乎没有开始学习Python,这对我来说是非常具有挑战性的任务。如果你可以帮我一点,我会很喜欢它;)

Column

...我正在尝试从另一个名为team3 ...

的文件中编辑此函数
# This is a function from psrock.py file
import team3

def round(player1, player2, history1='', history2=''):

    # Get player 1's move. 
    move1 = player1(my_history=history1, their_history=history2)
    # Get player 2's move. 
    move2 = player2(my_history=history2, their_history=history1)

    if valid(move1) and valid(move2):      
        if move1 == move2:
            score1, score2 = 0, 0
        elif move1+move2 in ['rs', 'sp', 'pr']:
            score1, score2 = 1, -1
        else:
            score1, score2 = -1, 1
    else: #one of the moves was invalid
        if valid(move1): # only move2 was invalid
            move2 = 'x'
            score1, score2 = 1, -1
        elif valid(move2): # only move1 was invalid
            move1 = 'x'
            score1, score2 = -1, 1
        else: # Both moves invalid
            move1, move2 = 'x', 'x'
            score1, score2 = -1, -1

    return move1, move2, score1, score2

文件:

  1. 下载文件
  2. 解压缩zip文件
  3. 打开同一标签中的所有文件
  4. 播放psrock_play.py文件
  5. https://drive.google.com/file/d/0BxNi5bq6Cvnea0c4aVVIWUxZRUE/view?usp=sharing

1 个答案:

答案 0 :(得分:0)

正如我理解您的问题,一个简单的干净解决方案可能是更改您的round函数,以便在调用时,其中一个参数是对"回调函数的引用"。此函数将在调用round的模块中定义,但实际上将在round内执行。

有关回调函数的更多信息,请参阅: https://en.wikipedia.org/wiki/Callback_(computer_programming)#Python Implementing a callback in Python - passing a callable reference to the current function 或进一步搜索" python回调函数"