我正在尝试创建一个机器学习程序。到目前为止,我已经在一个文本文件中存储了每一个“习得”含义,并将其保存在一个列表中,该列表列出了所有属于该含义的内容。文本文件由python文件读取,python文件生成类对象,这些类对象将文本文件中的数据属性化为类对象。然后,在主python文件中,主提示符是我遇到问题的地方
else:
try:
for obj in gc.get_objects():
try:
if isinstance(obj, LearnedClasses.learned):
if str(user.lower()) in obj.keys:
exec(obj.exstring)
chat()
break
except:
raise Exception
except Exception:
user = user.split()
for x in user:
learnlist.append(x)
learnch = random.choice(learnlist)
learnp = input("What does '{}' mean?".format(learnch))
learn(learnch, learnp)
chat()
这段代码遵循我所做的基本“内置”响应。这是在内置部分找不到任何关键字后发生的情况。我使用GC收集从文本文件生成的所有类对象。然后,如果提示将任何关键字与其“已学习”关键字匹配,我希望它使用为该类设置的响应进行响应。然而,我不能让它继续讨论if ALL-ELSE失败的部分,它从Exception开始。我如何安排它,使它能够实现我所描述的?多谢各位
遵循这个代码有点困难;以下是一些改进建议:
raise Exception
有一个打字错误:应该是raise Exception()
有一个
except
块只会引发一个异常而没有额外信息,这没有多大意义;省略它事实上,垃圾收集器不是存储您以后需要的信息的好地方;您能否更改代码,使学习的类存储在变量的列表中,并以某种方式返回或传递
一般来说,除非内存不足,否则永远不要触摸垃圾收集器,然后才知道如何帮助它丢弃东西
正如其他人在评论中所建议的,不要使用try/except,而是使用类似于flag变量的东西来跟踪您是否已经回答,或者使用for/break/else结构:
相关问题 更多 >
编程相关推荐