【发布时间】:2020-09-28 06:02:16
【问题描述】:
问题:定义一个类 Circle,其对象初始化为半径作为它的属性。
当输入半径不是数字时,确保对象创建引发 RadiusInputError,这是一个用户定义的异常。
使用 try ... except 子句。
使用语句 c1 = Circle('hello') 创建一个 Circle c1,并执行脚本。
应该向用户显示错误消息“'hello' is not a number”。
我的代码:
class RadiusInputError(Exception):
pass
class Circle:
def __init__(self,radius):
self.radius=radius
if type(self.radius) == "<class 'str'>":
raise RadiusInputError
try:
c1 = Circle('hello')
except RadiusInputError:
print("'Hello' is not a number.")
【问题讨论】:
-
建议使用
isinstance来检查对象是否属于特定类型stackoverflow.com/questions/1549801/…,而不是type,将代码更改为isinstance(self.radius, str) -
仍然没有输出:
-
您期望的输出是什么?
-
"<class 'str'>"是一个包含字母<class 'str'>的 字符串。实际类型只是str。使用if type(self.radius) == str:或if isinstance(self.radius, str)。请注意,理想情况下,您应该检查所需的类型,而不是某些不需要的类型 - 例如,dict在这里也可能不需要,但会通过您的检查。
标签: python python-3.x python-requests