在条件的所有可能分支中重新定义变量之前,它是否可以防止定义变量?
比如应该这个代码:
# Condition could fail
try:
textureIndices = someExpression()
# textureIndices is defined here if it does
except:
textureIndices = []
return textureIndices
重写为:
# textureIndices is defined early and then re-defined in the conditional
textureIndices = None
try:
textureIndices = someExpression()
except:
textureIndices = 66
return textureIndices
或者,因为除了打开其他问题,这里的textureIndices的定义是否存在问题:
if condition:
textureIndices = someExpression()
else:
textureIndices = 66
return textureIndices
减少问题?
唯一的区别是在第二个版本中textureIndices是在条件之外定义的.
我不明白为什么它很重要因为textureIndices不可能在条件中没有赋值,但我可以看到为什么从管家的角度来看,知道变量被分配给某些东西是件好事.
例如,如果第一个示例中没有except语句,则不会始终定义textureIndices并且返回会导致错误.
但是,如果没有转发定义在条件的两个原因中定义的变量,是否存在问题?