Как избежать nameerror в классе Python 3.7?
Я пытаюсь написать программу, в которой предложение "except" будет выполняться, когда параметры неверны, но я получаю NameError, когда даю недопустимый параметр. Я хотел, чтобы функция печати запускалась только тогда, когда параметры верны, но она работает, даже если параметры неверны, и поэтому я получаю ошибку.
Может ли кто-нибудь подсказать, как я могу получить вывод без получения ошибки?
Мой код таков:
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)
Что я уже пробовал:
Я пытался сделать отступ в строке печати внутри и снаружи условия except, но ни один из способов не сработал.
Richard MacCutchan
Ваш гостиничный класс ожидает, что первый параметр будет целочисленным значением. Переменная a не определена, поэтому она терпит неудачу.