全局变量作为函数中的参数而不在该函数中进行修改

时间:2015-09-30 05:34:05

标签: python-3.x

所以我有以下问题我需要在函数中修改全局变量,因此在下一个周期中它可以在我需要的范围内进一步

def down(turtleN,posx,posy,up): #function that needs to modify the global variables
    move = random.randint(0,1)
    if move == 1: #goes down to the left
       posx += 1
       posy += 1
       turtleN.goto(listPos[up][posx][posy])

    else: #goes down to the right
       if posy == 0: #keep it in range of the list
           posx += 1
           posy = 0
           turtleN.goto(listPos[up][posx][posy])

        else:
           posx += 1
           posy -= 1
           turtleN.goto(listPos[up][posx][posy])
def movimiento(N):
    global posx1
    global posy1
    global peso1
    posx1 = 0
    posy1 = 0
    peso1 = 0

    for k in range(N):
        down(turtle1,posx1,posy1,0)

1 个答案:

答案 0 :(得分:0)

如果您希望变量是全局变量,为什么要将它们用作函数的参数?从参数中删除它们并将其声明为global语句的全局变量(与在其他函数中一样)。