0

我对 Python 有点陌生,我的字典遇到了一个非常奇怪的问题,我似乎无法弄清楚。

基本上我有一个名为World的类,它有一个字典self.islands = {}问题是当我想使用World中的方法添加我的Island类的实例时,我得到了错误:addIsland(island)

AttributeError:世界实例没有属性“岛屿”

在线上:

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 个类,基本类有一个 main,__init__它调用self.world = World(self)then self.setupIslands()

World's 具有尝试将Island__init__添加到字典中的行self.islands = {}和方法,其中键作为岛的名称 ( ),其值作为岛实例本身。addIsland()island.name

我在这里做错了什么?我很确定我的项目中的其他地方也有这种设置。

我敢打赌这是一件愚蠢而简单的事情,不是吗:)

谢谢你的时间,

英菲尼迪菲兹

4

1 回答 1

2

自引用是方法的第一个参数。

def __init__(self, showBase):
于 2012-08-19T01:23:28.713 回答