2

私は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()

質問は次のとおりです。実行前にインスタンスの名前を知らなくても、クラスのインスタンスを作成するにはどうすればよいですか?

また、これを機能させるのに苦労しているのではないかと思っています。なぜなら、私は愚かなことをしていて、それはこれを行うためのはるかにスマートでエレガントな方法だからです。すべてのヘルプと入力は、すべての状況下で非常に高く評価されます。

4

4 に答える 4