pyhon global疑难问题

number = 10
print('number 外',number)
def add():
    if number == 10:
        print('number=',number)
    else:
        print('-------')
    global number
    number = 12
add()

运行结果是:

    global number
    ^
SyntaxError: name 'number' is used prior to global declaration


网上查了一下资料,错误原因如下:

  在更改全局变量前调用了全局变量
有人说了解决方法如下:

  函数添加了一个参数,以这个参数为判断标准,然后更改全局变量

buuuuuuuuuuuuuuuuttt:
我没看懂,实在不知道怎么写了。请来个屌大的帮忙看看。谢谢,好人一生平安!
回复列表(6|隐藏机器人聊天)
  • @Ta / 2020-10-05 / /
    From the Python documentation:

    Names listed in a global statement must not be used in the same code block textually preceding that global statement.
    http://docs.python.org/reference/simple_stmts.html#global
  • @Ta / 2020-10-05 / /
    @Onism,。。。。
    这个。。。。
  • @Ta / 2020-10-05 / /

    number = 10
    print('number 外',number)
    def add():
    global number
    if number == 10:
    print('number=',number)
    else:
    print('-------')
    number = 12
    add()
    //这样行不?
    山川异域,风月同天

  • @Ta / 2020-10-06 / /
    @kois,行,昨天晚上就是放前面可以执行了。😂,乱试出来的
  • @Ta / 2020-10-07 / /

    @艾木友尔尔巴,SyntaxError: name 'number' is used prior to global declaration这意思就是你在函数内部使用number之前要先global number。你查的那个解决方法好像一点关系都没有。
    山川异域,风月同天

  • @Ta / 2020-10-09 / /
    @kois,所以那人写的也是渣渣,误导人
添加新回复
回复需要登录