Как пропустить одно условие, если это не нужно в Python 3.7? - PullRequest
0 голосов
/ 18 февраля 2019

Я написал код, используя выражение if, try / исключением.Я хочу использовать команду «try», чтобы проверить правильность параметров и, если они верны, будет запущена функция «print».Если параметры не верны, то сообщение об ошибке будет напечатано и секция печати не будет запущена.Проблема в том, что когда я правильно ввел данные, он работает, но когда я даю неверные данные, после печати сообщения об ошибке я получаю 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)

1 Ответ

0 голосов
/ 18 февраля 2019

Ваш отпечаток должен находиться в сегменте try вашего кода, поскольку он всегда будет выполняться независимо от того, есть ли ошибка.

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")
    print (room1)
except: 
    print("there's an error")
...