比如应该这个代码:
# 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 = 66return textureIndices
减少问题?
唯一的区别是在第二个版本中textureIndices是在条件之外定义的.
我不明白为什么它很重要因为textureIndices不可能在条件中没有赋值,但我可以看到为什么从管家的角度来看,知道变量被分配给某些东西是件好事.
例如,如果第一个示例中没有except语句,则不会始终定义textureIndices并且返回会导致错误.
但是,如果没有转发定义在条件的两个原因中定义的变量,是否存在问题?
解决方法 一个原因是它创建了冗余代码.在这种情况下,它似乎不是很明显,但举一个例子,你有多个唯一的except语句在代码中捕获多个异常.想象一下,如果有人想重构您的代码或添加其他除语句.textureIndices = Nonetry : textureIndices = [thing for thing in func()]failexcept InvalIDTextException: textureIndices = [] #lines to handle specific exceptionexcept ValueError: textureIndices = [] #lines to handle specific exceptionexcept OSError: textureIndices = [] #lines to handle specific exceptionreturn textureIndices
如果您有多个以这种方式运行的变量,您可以看到它如何快速升级.通过首先声明基本情况,可以减少冗余.
textureIndices = []try : textureIndices = [thing for thing in func()]failexcept InvalIDTextException: #lines to handle specific exceptionexcept ValueError: #lines to handle specific exceptionexcept OSError: #lines to handle specific exceptionreturn textureIndices总结
以上是内存溢出为你收集整理的python – 在条件语句中声明变量有问题吗?全部内容,希望文章能够帮你解决python – 在条件语句中声明变量有问题吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)