我是个初学者,正在研究一个问题。如果一个对象用字符串参数传递,但是这个程序的输出是空白的,我必须引发一个异常。有人能帮忙吗?在
class RadiusInputError(Exception):
pass
class Circle:
def __init__(self,radius):
self.radius=radius
if type(self.radius) == "<class 'str'>":
raise RadiusInputError
try:
a = Circle('Hello')
except RadiusInputError:
print("'Hello' is not a number.")
你真的不应该用那种方式检查类型
代码不起作用的原因是:
如您所见,
^{pr2}$type(str)
的打印表示形式看起来像一个可以与之进行比较的字符串,但是表达式type(self.radius) == "<class 'str'>":
将左手边的type
与右手边的str
进行比较,后者永远不会求值为真。检查某个对象是否是特定类型的方法是使用isinstance
,如下所示:这正如预期的那样工作,你的代码其余部分都很好,只需更改类型检查。在
相关问题 更多 >
编程相关推荐