在Python3.7中使用try和except代替isinstance
我编写了一段代码,使用try和,捕获错误消息,但我不想在不使用isinstance的情况下编写它,并且当输入不是整数时,我会得到错误消息。问题是,即使输入是有效的整数,程序也会给我错误消息。请给我一些建议让它运行。我的代码如下: 我试着使用exception子句,但不起作用在Python3.7中使用try和except代替isinstance,python,try-catch,except,Python,Try Catch,Except,我编写了一段代码,使用try和,捕获错误消息,但我不想在不使用isinstance的情况下编写它,并且当输入不是整数时,我会得到错误消息。问题是,即使输入是有效的整数,程序也会给我错误消息。请给我一些建议让它运行。我的代码如下: 我试着使用exception子句,但不起作用 class Hotel: def __init__(self,room,catagory): if room != int: raise TypeError ()
class Hotel:
def __init__(self,room,catagory):
if room != int:
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.catagory
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")
room2 = Hotel(1,"A")
print(room1.getRoom())
except:
print("there's an error")
我期待着:
有个错误
1和精英
A您正在检查是否有房间!=int。它总是会给你错误
你必须检查打字室!=int。
我已经更正了下面的代码
class Hotel:
def __init__(self,room,catagory):
if type(room) != int:
raise TypeError ()
self.room = room
self.catagory = catagory
self.catagories = {"A":"Elite","B":"Economy","C":"Regular"}
self.rooms = ["0","1","2","3","4","5"]
因为,如果有房间!=int:这总是正确的。这不是在Python.isinstanceroom中检查类型的方式,如果要使用类型检查,int确实是更好的模式,但是typeroom==int可能是您要寻找的。如果您捕获了所有类似的错误,您还将捕获所有调试代码的可能性。