クラスのメソッドのパラメータが整数ではないのに、失敗した場合にTypeErrorを発生させたいと思います。コードは次のようになります。最初のパラメータに "N"を入れ、TypeErrorを取得し、 "Rectangleを非整数値に設定できません"という印刷が行われますが、代わりに "Traceback (最新の呼び出しの最後): ファイルが r1.setDataで "/Users/Janet/Documents/module6.py"、19行、(Nは、5) NameError:名前が 'N'Python3:TypeErrorを呼び出すことができません
class Rectangle:
def __init__ (self):
self.height = 0
self.width = 0
def setData(self, height, width):
if type(height) != int or type(width) != int:
raise TypeError()
if height <0 or width <0:
raise ValueError()
self.height = height
self.width = width
def __str__(self):
return "height = %i, and width = %i" % (self.height, self.width)
r1 = Rectangle()
try:
r1.setData(N,5)
except ValueError:
print ("can't set the Rectangle to a negative number")
except TypeError:
print ("can't set the Rectangle to a non-integer value")
print (r1)
」に定義されていません
正しくコードをインデントし、実際に何を教えてくださいハプニング。 – donkopotamus
'N 'の値は何ですか? – Evert
@donkopotamus思い出してくれてありがとう、私は質問とコードを書き直しました。 – Shengjing