gpt4 book ai didi

python - 有没有办法在实例化之前引用类对象?

转载 作者:行者123 更新时间:2023-11-28 20:20:59 24 4
gpt4 key购买 nike

我正在尝试使用 Python 制作一个简单的文字游戏。我有一个 Room 类:

class Room():
def __init__(self, monster, exits, loot):
self.room_guard = monster
self.exits = exits
self.guard_is_alive = True
self.loot = loot

当我创建房间时出现错误,因为我在创建房间之前调用了它们:

room_2 = Room(spider, {"West": room_3, "East": room_4, "South": room_1}, 2)
room_1 = Room(trogdor, {"North": room_2}, 2)

房间 2 不能有 "South": room_1 因为它还没有被实例化。有解决办法吗?

最佳答案

两种选择:间接,创建后赋值。

与其直接引用房间,不如使用将房间名称映射到房间的 dict:

rooms = {}
rooms['room_2'] = Room(spider, {"West": 'room_3', "East": 'room_4', "South": 'room_1'}, 2)
rooms['room_1'] = Room(trogdor, {"North": 'room_2'}, 2)

或者在创建 Room 对象后分配导出:

room_2 = Room(spider, {}, 2)
room_1 = Room(trogdor, {}, 2)

room_2.exits = {"West": room_3, "East": room_4, "South": room_1}
room_1.exits = {"North": room_2}

关于python - 有没有办法在实例化之前引用类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29382373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com