【发布时间】:2011-10-30 10:20:05
【问题描述】:
有人可以向我解释一下 funcion list.index() 的功能吗?我有以下代码:
def getPos(self,tile):
print self.tiles[5][5]
print tile
try:
myIndex = self.tiles.index(tile)
#some code
except:
print "exception raised"
#some code
结果:
<Tile.Tile instance at 0x36BCEB8>
<Tile.Tile instance at 0x36BCEB8>
exception raised
您知道为什么 list.index() 会返回异常,尽管 tile 变量是对 tiles[][] 元素的引用吗?非常感谢。
ps:顺便说一句,在这种特定情况下,我正在传递 tile[5][5]
【问题讨论】:
-
顺便说一句:永远不要使用裸露的
except:- 始终明确您想要捕获的异常,否则您可能会捕获一些您不期望的异常。 -
想一想。如果
some_list.index(some_item)返回i,那么some_list[i]应该返回some_item。在您拨打index之后,您期望myIndex是什么?如果它会起作用,你需要能够说self.tiles[myIndex]。但显然,myIndex不可能完成这项工作。所以不能指望self.tile.index(tile)工作。