使用属性,我认为很容易把事情搞混。就像下面的代码一样,我很想id
成为类型int
,但不知道 Python 是否允许我在没有 try 语句和捕获 ValueError 的情况下做到这一点
def getter(self):
return id
def setter(self, id):
self.id = id
如果我输入'boy'
而不是1
在那里,代码仍然运行。有没有办法消除这种情况?
使用属性,我认为很容易把事情搞混。就像下面的代码一样,我很想id
成为类型int
,但不知道 Python 是否允许我在没有 try 语句和捕获 ValueError 的情况下做到这一点
def getter(self):
return id
def setter(self, id):
self.id = id
如果我输入'boy'
而不是1
在那里,代码仍然运行。有没有办法消除这种情况?
你可以在 id 上调用 int:
def setter(self, id):
self.id = int(id)
现在通过1
or"1"
将起作用,但通过"boy"
将引发异常
def setter(self, id):
if not isinstance(id, int):
raise TypeError("dude, id has to be int")
self.id = id
现在,如果有人传递了不正确的输入,您应该用块包装分配代码try:except:
并按照您的意愿处理它。