无法连接'str'和'Nontype'对象错误,尽管所有参数都是纯字符串



我正在编写此Python程序,并且我会随机遇到这个真正令人困惑的错误。这是我脚本的一部分:

ai.py中代码的一部分(从行#133开始)

elif (config.var0 < config.var1):                   
    message = "SUCCESS_0021! var0 successfully adjusted."
    print message
    aux_func.write_log(message)
    config.var0 = float(config.var1)
    config.ask_trail = (1.0 + config.var2) * config.var3

aux_func.py文件中的write_log函数看起来像该起始行#43

def write_log (message):
    log_file = open(current_dir + '//logs//' + date_stamp(), 'a+')
    temp_write = "n " + time_stamp() + " : " + str(message)
    log_file.write(temp_write)
    log_file.close()

这可以正常工作,并按照预期的大多数时间来写入日志文件。但是,当我运行此脚本一段时间时,该控制台会带有此怪异的消息,上面写着:

Traceback <most recent call last):
  File "main1.py", line 102, in <module>
    func_flag = ai.decide()
  File "C:projectai.py", line 137, in task_decide
    aux_func.write_log(message)
  File "C:projectaux_func.py", line 45, in write_log
    temp_write = "n " + time_stamp() + " : " + str(message)
TypeError: cannot concatenate 'str' and 'NoneType' objects

ai.py功能是从main1.py函数调用的。

我不明白这个错误,我把头撞在墙上,试图理解为什么要得到这个。message是一个完美的字符串,我在显示错误的代码中没有看到任何"非型"对象。

编辑:对不起,忘了给您time_stamp()代码,您可以在这里:

def time_stamp():
    flag = 0        
    current_time = ''
    system_date_time = str (datetime.datetime.now())
    while (system_date_time == None):
        system_date_time = str (datetime.datetime.now())    
    for c in system_date_time:
        if (c == ' '):
            flag = 1
        if (c != '.'):
            if (flag == 1):
                current_time += c
            else:
                pass
        else:
            return current_time

它是 time_stamp() callable;它返回None

该行上的其他任何内容都可以是None,因为它们是字符串文字,或str()函数的结果:

temp_write = "n " + time_stamp() + " : " + str(message)

因此,唯一剩下的候选人是time_stamp()

最新更新