You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

文本冒险游戏代码出现AttributeError: __enter__错误,原因是什么?

问题解决:AttributeError: enter 及代码修正

错误原因

with语句仅适用于具备上下文管理能力的对象(即实现了__enter__和__exit__方法的对象,比如文件句柄、线程锁等)。你代码里的y.index("~")返回的是一个整数,不属于这类对象,所以会抛出AttributeError: __enter__错误。

代码修正

首先移除错误的with语句,直接获取索引即可。另外原代码中y[_0:_0]会取到空字符串,这显然不符合提取敌人信息的需求,以下是两种常见的修正方案:

方案1:提取~之后的所有内容

如果敌人信息是从~开始到字符串末尾,代码调整为:

_0 = y.index("~")
enemy_info = y[_0+1:]
self.room_enemies.append(enemy_info)
print(enemy_info)

方案2:提取~与另一标记之间的内容

如果敌人信息被~和另一标记(比如^)包裹,需要先找到结束标记的索引:

start_idx = y.index("~")
end_idx = y.index("^", start_idx)
enemy_info = y[start_idx+1:end_idx]
self.room_enemies.append(enemy_info)
print(enemy_info)

内容的提问来源于stack exchange,提问作者Dominic Miller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:36:14