Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python如何更改全局变量_Python - Fatal编程技术网

python如何更改全局变量

python如何更改全局变量,python,Python,我想得到上传成功的某种确认,我的方法定义如下。然而,全局变量的值并没有改变。请帮忙 global upload_confirm upload_confirm = False def confirm_upload(): upload_confirm = True def start_new_upload(): confirm_upload() while (upload_confirm != True): print "waiting for uploa

我想得到上传成功的某种确认,我的方法定义如下。然而,全局变量的值并没有改变。请帮忙

global upload_confirm
upload_confirm = False

def confirm_upload():
    upload_confirm = True

def start_new_upload():
    confirm_upload()
    while (upload_confirm != True):
        print "waiting for upload to be true"
        time.sleep(5)
    if (upload_confirm == True):
        print "start Upload"

start_new_upload()
你可以试试这个:

def confirm_upload():
    global upload_confirm
    upload_confirm = True

由于您在局部范围内执行
upload\u confirm=True
,Python将其视为局部变量。因此,您的全局变量保持不变。

您需要将
global
语句放在要访问全局变量的范围内,即:

upload_confirm = False

def confirm_upload():
    global upload_confirm
    upload_confirm = True

global
语句应位于函数内部

def confirm_upload():
    global upload_confirm
    upload_confirm = True

否则,
upload\u confirm=..
将创建一个局部变量。

confirm\u upload()
方法中尝试此操作

def confirm_upload():
    global upload_confirm #Add this line
    upload_confirm = True

您需要在方法内部将其声明为全局,否则它将默认为局部。

如果我只想读取全局变量,是否可以跳过每个函数开头的
global
声明?