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)
它是time_stamp()
可调用的;它返回None
。
该行上没有其他任何内容,None
因为它们要么是字符串文字,要么是str()
函数的结果:
temp_write = "\n " + time_stamp() + " : " + str(message)
Run Code Online (Sandbox Code Playgroud)
因此,唯一剩下的候选人是time_stamp()
。