Python 3在函数内部更改变量而不使用全局变量

时间:2017-11-17 17:47:08

标签: python

所以我目前正在开展一个大学项目,因此我无法将我的代码粘贴得更具体,但我们有这个愚蠢的规则,即不允许全局变量,使用它们会导致删除点数。所以我的问题是: 我正在掷骰子游戏,其中有几个玩家轮流,我需要一个变量来识别轮到哪个玩家。我有一个函数,它代表每个转弯和第二个,它多次调用第一个函数,这等于玩家的数量。可以说我有3名球员:

def func1():
    player_on_turn = 1
    result = 0
    print('Player',player_on_turn,'is on turn.')
    #something
    return result

def func2():
    players = 3 
    for player in range(1,players+1):
        player = func1()

func2()

所以这个变量player_on_turn必须改变3次,这意味着每次调用该函数。第一次调用它等于1,第二次调用等于2,等等。 我已经使用全局变量完成了这项工作,但显然我无法使用它们,因为"它使代码难以阅读"。在第一个函数中,我已经使用return返回一个值,该值在函数内部发生变化并且每个调用都被重置。有没有办法可以做到这一点?提前谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用Function Parameters在函数之间传递数据。

您还可以使用Class创建存储没有全局变量的数据的对象。