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

rrl*_*ane -2 python string runtime-error

我正在编写这个 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
Run Code Online (Sandbox Code Playgroud)

文件中的write_log函数aux_func.py看起来像这样的起始行 #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()
Run Code Online (Sandbox Code Playgroud)

这工作得很好,并且在大多数情况下按预期写入日志文件。但是,当我运行此脚本一段时间时,控制台会显示以下奇怪的消息:

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

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

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

编辑:对不起,忘了给你 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
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

它是time_stamp()可调用的;它返回None

该行上没有其他任何内容,None因为它们要么是字符串文字,要么是str()函数的结果:

temp_write = "\n " + time_stamp() + " : " + str(message)
Run Code Online (Sandbox Code Playgroud)

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