我正在使用numpy模塊來檢索2d數組中的最大值的位置。但是這個2d數組由MyObjects組成。現在,我得到的錯誤:python將對象轉換爲int
TypeError: unorderable types: int() > MyObject()
我嘗試使用此代碼重寫INT功能:
def int(self):
return self.score
但是,這並沒有解決我的問題。 我是否必須將MyObjects的2d數組轉換爲2d的整數數組,我是否需要擴展Integer對象(如果python中可以這樣做),還是可以用另一種方式重寫此int()函數?
[編輯]
完整對象:
class MyObject:
def __init__(self, x, y, score, direction, match):
self.x = x
self.y = y
self.score = score
self.direction = direction
self.match = match
def __str__(self):
return str(self.score)
def int(self):
return self.score
我把這種對象的方式:
def traceBack(self):
self.matrix = np.array(self.matrix)
maxIndex = self.matrix.argmax()
print(self.matrix.unravel_index(maxIndex))
請在'MyObject'中發佈所有相關的代碼,這樣你會更容易得到幫助。什麼是'self.score'? – 2013-05-22 14:03:57
如果數組的最大值不包含「float」或「int」數據類型,那麼您希望數組的最大值是多少? – danodonovan
這甚至不是你想要覆蓋轉換爲整數的方式......提示:它是['__int__()'](http://docs.python.org/2/reference/datamodel.html#object.__int__) ,無論你做什麼都可能不會調用它 - 我不相信Python在比較它們時試圖將對象強制轉換爲相同的類型。 – millimoose