记录函数以记住布尔函数

时间:2018-09-17 01:18:42

标签: python python-3.x logging boolean

所以现在我有一个机器人,如果有事情发生,它将更改一个布尔值。现在,我也正在对该机器人使用API​​,因此连接错误并非没有可能,所以我希望机器人执行的操作是记住该机器人是否已将“ x”的布尔值更改为False / True。发生异常时,而不是默认的布尔值。我的代码如下所示:

def boolean():
   try:
      x = False

      if x == False:
         if a >= b:
           do = something
           x = True

      elif x == True:
         if a <= b:
           do = something
           x = False

现在这是我的代码,所以当出现连接问题时,我放置了一个Exceptions代码,以便该程序将尝试再次尝试运行“ def boolean()”,因此代码如下所示:

except Exceptions as e:
      print(e)
      time.sleep(10)
      boolean()

,这是我需要帮助的地方,因为如果机器人已将“ x”的布尔值更改为“ True”,然后发生了连接错误,然后程序再次重新启动,则“ x”将设置为默认值布尔值是“ False”,我不希望这种情况发生,所以我想要的是要记住的程序,它是否已经更改了“ x”的布尔值。我遇到了这个问题,所以需要您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用JSON文件保存设置。使用初始布尔值设置一个json文件(将其命名为settings.json):

{
  "x": false
}

然后,在您的代码中,从头开始加载json文件,然后加载布尔值。然后,每当布尔值更改时,将其写入json文件:

import json

with open("settings.json", "r") as jsonFile:
    data = json.load(jsonFile)

x = data["x"]

.... blah blah code
....
# Modifying x
x = True
data["x"] = x

with open("settings.json", "w") as jsonFile:
    json.dump(data, jsonFile)