我是初学者,只是在解决问题。如果使用字符串参数传递对象,则必须引发异常,但此程序的输出为空。有人可以帮忙吗?
<h1>This is a simple report made with word or any editor</h1>
<p>CLIENT DATA:<php echo $myphpvariable; ?> </p>
答案 0 :(得分:2)
你真的不应该以那种方式检查类型
您编码的原因不起作用是因为:
>>> type(type(str))
<class 'type'>
>>> type(str)
<class 'type'>
正如您所看到的,type(str)
的打印表示看起来像一个字符串,您可以比较,但表达式type(self.radius) == "<class 'str'>":
正在比较左侧的type
和{{1}在右侧,永远不会评估为真。检查某些内容是否属于特定类型的方法是使用str
,如下所示:
isinstance
这可以正常工作,其余的代码很好,只需更改类型检查。
答案 1 :(得分:0)
class CustomError(Exception):
pass
class Circle:
def __init__(self,radius):
self.radius=radius
result = isinstance(self.radius, str)
if result == True:
raise CustomError
try:
a = Circle('Hello')
except CustomError:
print("'Hello' is not a number.")
答案 2 :(得分:0)
检查已创建对象的数据类型,并尝试以以下格式编写:
class RadiusInputError(Exception):
pass
class Circle:
def __init__(self,radius):
self.radius=radius
try:
if not isinstance(self.radius, int):
raise RadiusInputError
except RadiusInputError:
print("'hello' is not a number.")
a = Circle('hello')