我很好奇我是否可以在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
文件:
https://drive.google.com/file/d/0BxNi5bq6Cvnea0c4aVVIWUxZRUE/view?usp=sharing
答案 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回调函数"