2024-04-24 07:12:51 发布
网友
我有一些代码没有按预期运行。 我把问题归结为:
item = None try: if item != None: print('pass') except TypeError, e: print('fail')
如果项目不是“None”类型,则打印pass。我想提出一个例外 如果项目为“无”,则当我将“项目”设置为“无”时,将不打印任何内容。
我可以用if语句很容易地做到这一点,但我很想知道为什么这不能作为try/except。
有什么想法吗?
谢谢!
在您的try块中没有任何东西可以引发TypeError,它只是检查item !=None。item !=None将是True或False,但在这两种情况下都不会引发错误。
try
TypeError
item !=None
True
False
您可以执行以下操作:
item = None try: if item != None: # better: if item is not None print('pass') else: raise TypeError except TypeError: print('fail')
或者简单地说:
item = None if item != None: # better: if item is not None print('pass') else: print('fail')
更像Python的方式:
item = None result = 'pass' if item is not None else 'fail' print result
如果您真的想在item是None时引发异常,最简单的方法是
item
None
if item is None: raise TypeError("'None' value provided for item of farkling routine")
如前所述,在您的示例中,您没有导致触发except子句的任何异常。但我可能误解了你的问题。
except
在您的
try
块中没有任何东西可以引发TypeError
,它只是检查item !=None
。item !=None
将是True
或False
,但在这两种情况下都不会引发错误。您可以执行以下操作:
或者简单地说:
更像Python的方式:
如果您真的想在
item
是None
时引发异常,最简单的方法是如前所述,在您的示例中,您没有导致触发
except
子句的任何异常。但我可能误解了你的问题。相关问题 更多 >
编程相关推荐