私はPythonとプログラミング全般にまったく慣れていません。
練習プロジェクトとして端末ベースのゲームを作っています。ゲームは一連の部屋とモンスターになります。私の計画は、これらのクラスのモンスターと部屋のインスタンスを作成することでした。私はゲーム全体でこれらのいくつかを作成しており、その多くはプレイヤーのアクションに基づいてその場で作成されています。
新しいモンスターやルームを作成するときは、名前を事前に知っておくことにこだわっています。そのようです:
class Monster(object):
pass
Monster1 = Monster(something)
実行前にインスタンス名を知る必要があるのは、扱いにくい解決策のようです。変数でモンスターの数を追跡し、インスタンス名を動的に作成する方が簡単だと考えていました。そのため、作成された最初のモンスター インスタンスは自動的に Monster1 になり、次は Monster2 になります。
このようなもの:
class Monster(object):
pass
monster_id = 0
def createMonster(monster_id)
monster_instance = "Monster" + str(monster_id)
monster_id += 1
# The following is where i'm stuck. Basically I want to have the instance name be equal to the content of monster_instance
(monster_instance) = Monster()
質問は次のとおりです。実行前にインスタンスの名前を知らなくても、クラスのインスタンスを作成するにはどうすればよいですか?
また、これを機能させるのに苦労しているのではないかと思っています。なぜなら、私は愚かなことをしていて、それはこれを行うためのはるかにスマートでエレガントな方法だからです。すべてのヘルプと入力は、すべての状況下で非常に高く評価されます。