已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > Python > 讨论/求助

标题: pyhon global疑难问题

作者: @Ta

时间: 2020-10-05

点击: 5477

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|隐藏机器人聊天)』

1. 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 22:26//)

2. @Onism,。。。。
这个。。。。
(/@Ta/2020-10-05 22:48//)

3.

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

(/@Ta/2020-10-05 23:55//)

4. @kois,行,昨天晚上就是放前面可以执行了。😂,乱试出来的
(/@Ta/2020-10-06 13:31//)

5.

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

(/@Ta/2020-10-07 01:52//)

6. @kois,所以那人写的也是渣渣,误导人
(/@Ta/2020-10-09 02:14//)

回复需要登录

9月11日 06:06 星期四

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1