Мне интересно, возможно ли использовать объект для доступа к определенному значению в списке.
Например, возьмите следующий код:
class Node:
def __init__(self, label):
self.label = label
def __int__(self):
return int(self.label)
distances = [10, 20, 30, 40, 50, 60]
node = Node("2")
print(distances[node]) # I expected this to be treated as distances[2]
Это дастошибка, так как node
не является допустимым индексом для distances[node]
.Я надеялся, что, определив __int__
в моем классе Node
, он будет неявно приводить узел к целому числу, которое затем можно будет рассматривать как действительный индекс.
Итак, мне интересно, есть лиэто способ, которым я могу выполнить следующую работу (возможно, переопределив какой-то метод?):
print(distances[node]) # Desired Output: 30
без необходимости делать что-то вроде следующего:
print(distances[int(node)])