PyCharm 警告我,在分配之前可以引用变量category
,但我不这么认为。
除了应该捕获每个Exception
(致命错误除外),最后在try
或except
阻止之后调用。
try:
category = lst[2]
except:
category = None
finally:
if not category: #here
category = self.default_category
你怎么看?它是真的还是一个错误?
答案 0 :(得分:2)
也许PyCharm在没有考虑的情况下看到了这项任务,并且#34;分配给了什么"。也就是说,None
是有所不同的,考虑一下你是否写了:
try:
category = lst[2]
except:
category = Noone
finally:
if not category:
category = self.default_category
(或None/1
等)然后你得到:
NameError: name 'category' is not defined
因为如果lst
为空,则异常中会有例外:
当try子句中发生异常但尚未发生异常时 由except子句处理(或者它发生在except或者else 在子句执行后重新引发它。