Я написал код, используя предложение if, try/except. Я хочу использовать «попробовать», чтобы проверить правильность параметров, и если они верны, функция «печать» будет запущена. Если параметры неверны, будет напечатано сообщение об ошибке, и секция печати не запустится. Проблема в том, что когда я ввожу правильный ввод, он работает, но когда я даю неправильный ввод, после печати сообщения об ошибке я получаю NameError, говоря, что «room1» не определен. Я понял, почему это происходит, но я не понимаю, как получить правильный вывод, не получая ошибки.
Мой код:
class Hotel:
def __init__(self,room,catagory):
if type(room) != int:
raise TypeError()
if type(catagory) != str:
raise TypeError()
self.room = room
self.catagory = catagory
self.catagories = {"A":"Elite","B":"Economy","C":"Regular"}
self.rooms = ["0","1","2","3","4","5"]
def getRoom(self):
return self.room
def getCatagory(self):
return self.catagories.get(self.catagory)
def __str__(self):
return "%s and %s"%(self.rooms[self.room],self.catagories.get(self.catagory))
try:
room1 = Hotel(a,"A")
except:
print("there's an error")
print (room1)