Я пытаюсь получить значения из моего словаря VALUES. Моя программа создает комбинацию возможных позиций и получает последнюю позицию. Затем я хочу получить значение. Здесь все работает хорошо, кроме указанного метода .get_value. Когда я выполняю этот код я получаю:Получение значений из словаря в ООП: «AttributeError»
AttributeError: «Комбинация» объект не имеет атрибута «get_value»
Теоретически это должно быть легко, но я новичок в ООП, и я не вижу, что здесь не так.
X = ['A','B','C']
Y = ['1','2','3']
VALUES = {'A':10, 'B': 50, 'C':-20}
class Combination:
def __init__(self,x,y):
if (x in X) and (y in Y):
self.x = x
self.y = y
else:
print "WRONG!!"
def __repr__ (self):
return self.x+self.y
def get_x(self):
return self.x
def get_y(self):
return self.y
class Position:
def __init__(self):
self.xy = []
for i in X:
for j in Y:
self.xy.append(Combination(i,j))
def choose_last(self):
return self.xy.pop()
def __str__(self):
return "List contains: " + str(self.xy)
class Operation1:
def __init__(self):
self.operation1 = []
def __str__(self):
s = str(self.operation1)
return s
def get_value(self):
V = VALUES.get(self)
return V
pos = Position()
print pos
last_item = pos.choose_last()
print "Last item:", last_item, pos
last_value = last_item.get_value() # <---- Here is a problem
Как я могу получить значение своей позиции? Значение определяется значением X - это A, B или C. В словаре у меня есть числовое значение для буквы.
Могу ли я каким-либо образом использовать класс Operation1 для получения этого значения? Потому что позже я хотел бы больше использовать этот класс? – Kwiaci