为什么我的第二个功能没有被激活

时间:2018-01-04 13:00:02

标签: python

我的程序未输入searcholdvalue()功能。

我的代码,编辑:

filename = Date + 'counter.json'

if not os.path.isfile(filename):
    outfile = open(filename, "w")

counter_value = 1
with open(filename, 'a') as feedjson:
       json.dump('counter_value : ' + str(counter_value), feedjson)
       json.dump('timestamp : ' + time_now , feedjson)
       json.dump('\n', feedjson,)
       feedjson.write('\n')

def energy_consumption_per_hour():
    if counter_value == 1:     
        actual_time= time_now
        actual_val= counter_value
        old_time= datetime.today() - timedelta(hours=1)
        def search_old_value():
            json_data = json.load(open(filename).read())
            for i in json_data:
                if i['timestamp'] == old_time:
                    search_old_value = i['counter_value']
                    break
            old_value= search_old_value
            energy_consumption_per_hour= ((actual_val- old_value)/(actual_time-old_time))

test= energy_counsuption_per_hour

JSON文件如下所示:

"counter_value : 20""timestamp : 2018-01-04 12:44:05""\n"
"counter_value : 10""timestamp : 2018-01-04 12:44:07""\n"

结果应为10kWh

问题:为什么我的代码不能进入searcholdvalue()功能?

3 个答案:

答案 0 :(得分:0)

Namespaces是一个很棒的主意 - 让我们做更多的事情!

您遇到的第一个问题是,您未在任何地方searcholdvalue()致电

答案 1 :(得分:0)

Python是格式化的空格,因为所有内容都在if counter_value == 1下缩进,除非counter_value为1,否则不执行任何操作。在提供的代码中,它在使用前从不设置。因此,我希望它不会执行。然后有一个问题,在searcholdvalue体外的searcholdvalue之后没有代码,所以没有什么能够调用它。

答案 2 :(得分:0)

当counter_value!= 1需要在那里进行更改时,是否期望执行该函数的其余部分。接下来,函数名称和变量energy_counsuption_per_hour中存在拼写错误 还需要将searcholdvalue实现为嵌套变量吗?有关内部功能的充分理由,请参阅inner functions