Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Variables_Mutable - Fatal编程技术网

Python如何动态更改变量的值

Python如何动态更改变量的值,python,variables,mutable,Python,Variables,Mutable,现在我正在使用一个包含以下信息的.txt文件: ["corrector", "Enabled"] ["Inteligencia", "Enabled"] 然后在我的python程序中,它以最快的速度加载数据,如下所示: for line in open("menu.txt", 'r'): retrieved = json.loads(line) if retrieved[0] == "corrector": corrector = retrieved[1] if retri

现在我正在使用一个包含以下信息的.txt文件:

["corrector", "Enabled"]
["Inteligencia", "Enabled"]
然后在我的python程序中,它以最快的速度加载数据,如下所示:

for line in open("menu.txt", 'r'):
  retrieved = json.loads(line)
  if retrieved[0] == "corrector":
    corrector = retrieved[1]
  if retrieved[0] == "Inteligencia":
    Inteligencia = retrieved[1]
到目前为止,它工作得很完美,但是由于这是一个聊天机器人,我希望能够直接从聊天中更改该变量的值,我在聊天中调用“!Enable corrector”时尝试了这段代码

  if corrector == "Enabled":
    room.message("ERROR: Already Enabled")
  else:
    data = []
    with open('menu.txt', 'r+') as f:
      for line in f:
        data_line = json.loads(line)
        if data_line[0] == "corrector": 
          data_line[1] = "Enabled"
        data.append(data_line)
      f.seek(0)
      f.writelines(["%s\n" % json.dumps(i) for i in data])
      f.truncate()
    room.message("corrector enabled")
这同样有效,如果我打开.txt文件,我可以看到它已经改变的值。真正的问题是python似乎不接受我更改了一个变量,它仍然认为它是“禁用”的,而它已经“启用”了。在我重新启动程序之前,它不会将变量读取为“已启用”

我想知道是否有一个刷新变量的选项,或者一个变通方法来动态地更改变量的值,使效果持续而不需要重新启动

动态更改变量的值

此代码动态更改变量的值:

a = 1
a = 2
您的问题表明您希望能够通过计算名称查找值。解决方法是使用
dict

mydict = {'corrector':0}
mydict['corrector'] = 1

如果要更改文件中的值,则需要根据现有数据写出一个新文件。看起来您正在加载json,因此
json
模块将帮助您解决这个问题。

变量的可能重复与它们的来源无关;对“变量”是什么似乎存在着根本性的误解。您必须再次读取该文件。可能的副本几小时前还有另一个dup。我在写的时候收集了11个独立的。是的,我正在使用json。所以问题是变量不能从列表中更新信息,但可以从dict中更新?这就是我从你的回答中所理解的。@Saelyth“变量不能从列表中更新其信息,但它可以从dict中更新”并不意味着什么。变量不会从任何内容更新其信息。变量通过赋值语句获取新值。就这样。啊,好吧,很抱歉,我不能在这里。我只是学习python作为我的第一种编程语言,我主要是从谷歌或这个网站上获得的信息中学习。谢谢你的回答,从现在起我将尝试使用dict(好吧,我必须学习,因为10分钟前我还不知道dict是什么)。谢谢@我强烈建议你遵循一个教程。