0

使用属性,我认为很容易把事情搞混。就像下面的代码一样,我很想id成为类型int,但不知道 Python 是否允许我在没有 try 语句和捕获 ValueError 的情况下做到这一点

def getter(self):
    return id

def setter(self, id):
    self.id = id

如果我输入'boy'而不是1在那里,代码仍然运行。有没有办法消除这种情况?

4

2 回答 2

5

你可以在 id 上调用 int:

def setter(self, id):
  self.id = int(id)

现在通过1or"1"将起作用,但通过"boy"将引发异常

于 2013-09-16T15:39:22.673 回答
1
def setter(self, id):
    if not isinstance(id, int):
        raise TypeError("dude, id has to be int")
    self.id = id

现在,如果有人传递了不正确的输入,您应该用块包装分配代码try:except:并按照您的意愿处理它。

于 2013-09-16T15:38:34.613 回答