Python从函数内部改变外部变量

时间:2016-09-01 11:47:22

标签: python

当我运行它时它起作用,但它说

"name 'select_place' is assigned to before global declaration"

当我摆脱第二个全局时,不会出现任何注释,但由于select_place不再是全局的,因此在我的最后一行代码中无法读取(如果选择)。 我是python的新手,理想情况下我喜欢不使用全局命令的方法,但搜索后我仍然找不到任何有用的东西。

我的代码:

def attempt(x):
    if location =='a':
         global select_place
         select_place = 0
   if location =='b'
        global select_place
        select_place = 1

place = ([a,b,c,d])

这是一些海龟图形的开始

def Draw_piece_a(Top_right):
    goto(place[select_place])

1 个答案:

答案 0 :(得分:1)

您需要先声明变量,另外可以使功能代码更清晰:

select_place = False
def attempt(x):
    global select_place
    if location == 'a':
        select_place = 0
    elif location == 'b':
        select_place = 1

此外,attempt()没有返回值,这是你想要的吗?