Извините, я искал и не смог найти ответ на этот вопрос - я знаю, что есть много тем и вопросов по этому поводу, но не вижу ответа.Пожалуйста, перенаправьте меня или, возможно, предложите решение!TIA
У меня есть массив объектов.Одним из (4 собственно) свойств объектов в этом массиве является другой класс.
Входные данные, полученные от пользователя, относятся к одному из свойств в массиве, который содержит экземпляр другого класса.Я просто хочу прочитать эти данные.
class direction():
dest = -1
lock = ''
class room():
roomname = ''
desc = ''
n = direction()
s = direction()
w = direction()
e = direction()
item = ''
rooms = []
rooms.append( room() )
rooms.append( room() )
rooms.append( room() )
rooms.append( room() )
rooms.append( room() )
rooms[0].roomname = 'outside'
rooms[0].desc = ''
rooms[0].n.dest = 'bathroom'
rooms[0].item = ''
rooms[1].roomname = 'hall'
rooms[1].desc = 'The hallway has doors to the east and south'
rooms[1].s.dest = 2
rooms[1].e.dest = 3
rooms[1].item = ''
и т. Д. Теперь я беру ввод от пользователя, например: "go n" и хотел бы проверить / прочитать свойство 'lock' из свойстваэто относится к выбранному направлению в текущей комнате.currentRoom - это целое число, которое относится к элементу LIST, на который он ссылается.
Пожалуйста, не критикуйте отсутствие у меня конструкторов.Сначала я стараюсь сделать код максимально простым и представлю его позже.
Я беру вводные данные следующим образом:
print('Your action:')
move = input('>>>').lower().split()
Я использую следующую строку кода, чтобы проверить, существует ли полученное направление в текущей комнате следующим образом:
if getattr(rooms[currentRoom], move[1]) != '':
и затем хотите проверить свойство блокировки для заданного направления в текущей комнате.Примерно так ... (что не работает)
if rooms[currentRoom].move[1].lock != '':
Надеюсь, это достаточно ясно!Большое спасибо.