私はPythonに少し慣れていないので、辞書で本当に奇妙な問題にぶつかりました。それは私には理解できないようです。
基本的に、辞書を持つWorldというクラスがあります。問題は、Worldのメソッドを使用してIslandクラスself.islands = {}
のインスタンスを追加したいときに、エラーが発生することです。addIsland(island)
AttributeError:ワールドインスタンスに属性'islands'がありません
ライン上:
self.islands[island.name] = island
self.islandsは、Worldで次のように初期化するため、確実に存在__init__
します。
class World():
def __init__(showBase, self):
self.islands = {}
...
addIslandメソッドは次のとおりです。
def addIsland(self, island):
island.setWorld(self)
self.islands[island.name] = island
そして、そのメソッドは、基本クラス__init__
(メインが実行される)から次のように呼び出されます。
self.world = World(self)
self.setupIslands()
self.setupIslands()は次のようになります。
def setupIslands(self):
#Island 1
island1 = IslandCross()
self.world.addIsland(island1)
少し紛らわしい場合は申し訳ありませんが、基本的に3つのクラスがあり、ベースにはメインがあり、それはthen__init__
を呼び出します。self.world = World(self)
self.setupIslands()
World's には、島の名前()としてキーを使用して辞書に島を追加しようとする__init__
行self.islands = {}
とメソッドがあり、島のインスタンス自体としての値です。addIsland()
island.name
私はここで何が間違っているのですか?この種のセットアップは、プロジェクトの他の場所でも機能していると確信しています。
私はそれが愚かで単純なものだと思いますね:)
御時間ありがとうございます、
InfinitiFizz