我正在编写此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()
。