【发布时间】:2012-11-07 00:55:13
【问题描述】:
考虑以下几点:
def funcA():
some process = dynamicVar
if dynamicVar == 1:
return dynamicVar
else:
print "no dynamicVar"
def main():
outcome = funcA()
如果“某些过程”部分的结果为 1,则 var dynamicVar 将作为 outcome 传递回主函数。如果 dynamicVar 不是 1,则例程将失败,因为没有返回任何参数。
我可以将结果包装成一个列表:
def funcA():
outcomeList = []
some process = dynamicVar
if dynamicVar == 1:
outcomeList.append(dynamicVar)
return outcomeList
else:
print "no dynamicVar"
return outcomeList
def main():
outcome = funcA()
if outcome != []:
do something using dynamicVar
else:
do something else!
或者作为一个字典项目。我能想到的两种解决方案中的每一种都涉及主/请求函数中的另一组处理。
这是处理这种可能性的“正确”方法吗?或者,还有更好的方法?
处理这个问题的正确方法是什么。我特别想尝试捕获 try: / except: 错误,所以在那个例子中,用途是相反的,所以类似于:
def funcA():
some process = dynamicVar
if dynamicVar == 1:
return
else:
outcome = "no dynamicVar"
return outcome
def main():
try:
funcA()
except:
outcome = funcA.dynamicVar
【问题讨论】:
-
您在这里要解决的实际问题是什么?如果您不返回任何内容,则返回
None。 -
我添加了我试图解决的问题作为示例
-
@JayGattuso 究竟是如何“例行公事失败”的?您发布的代码在我看来完全没问题...
-
@deathApril 如果
dynamicVar确实 = 1,则没有要分配给outcome(在main()中)的返回参数。
标签: python