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)

今は合格1または"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 に答える