Я использую модуль numpy для получения положения максимального значения в массиве 2d. Но этот 2d-массив состоит из MyObjects. Теперь я получаю ошибку:python cast object to int
TypeError: unorderable types: int() > MyObject()
Я попытался переопределить функцию ИНТ с этим кодом:
def int(self):
return self.score
Но это не решает мою проблему. Должен ли я преобразовать свой 2d массив MyObjects в 2d массив целых чисел, мне нужно расширить объект Integer (если это возможно в python) или я могу переопределить эту функцию int() по-другому?
[EDIT]
Полный объект:
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'? –
Что вы ожидаете от максимального значения вашего массива, если оно не содержит типов данных 'float' или' int'? – danodonovan
Это даже не то, как вы должны переопределить преобразование в целое ... Подсказка: это ['__int__()'] (http://docs.python.org/2/reference/datamodel.html#object.__int__) , и все, что вы делаете, вероятно, не собирается называть его в любом случае - я не считаю, что Python пытается принуждать объекты к одному и тому же типу при их сравнении. – millimoose