【问题标题】:python how to change the global variables [duplicate]python如何更改全局变量[重复]
【发布时间】:2014-11-23 00:17:10
【问题描述】:

我想确认上传是否成功,我定义了类似于以下的方法。但是全局变量的值没有改变。请帮忙

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()

【问题讨论】:

    标签: python


    【解决方案1】:

    在你的 confirm_upload() 方法中试试这个。

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

    您需要在方法中将其声明为全局,否则默认为本地。

    【讨论】:

      【解决方案2】:

      global 语句应该在函数内部。

      def confirm_upload():
          global upload_confirm
          upload_confirm = True
      

      否则,upload_confirm = .. 将创建一个局部变量。

      【讨论】:

        【解决方案3】:

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

        upload_confirm = False
        
        def confirm_upload():
            global upload_confirm
            upload_confirm = True
        

        【讨论】:

          【解决方案4】:

          你可以试试这个:

          def confirm_upload():
              global upload_confirm
              upload_confirm = True
          

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

          【讨论】:

          • 如果我只想读取一个全局变量,我可以跳过每个函数开头的global 声明吗?
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-10-02
          • 2017-08-20
          • 1970-01-01
          • 2015-08-19
          • 2014-09-06
          • 2015-08-30
          • 1970-01-01
          相关资源
          最近更新 更多