数週間前に Python の学習を始めたばかりで、テキストベースのアドベンチャー ゲームを書き始めました。安全ではないと読んだ eval() を使用する以外に、文字列をクラスのインスタンスに変換する良い方法を見つけるのに苦労しています。参考までに、私が取り組んでいるものは次のとおりです。
class Room(object):
"""Defines a class for rooms in the game."""
def __init__(self, name, unlocked, items, description, seen):
self.name = name
self.unlocked = unlocked
self.items = items
self.description = description
self.seen = seen
class Item(object):
""" Defines a class of items in rooms."""
def __init__(self, name, actions, description):
self.name = name
self.actions = actions
self.description = description
def examine(input):
if isinstance(eval(input), Room):
print eval(input).description
elif isinstance(eval(input), Item):
print eval(input).description
else:
print "I don't understand that."
入力が文字列の場合、安全にクラス オブジェクトにしてデータ属性 .description にアクセスするにはどうすればよいですか? また、これについて完全に間違った方法で行っている場合は、お気軽に別の方法を提案してください。