次の点を考慮してください。
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!
または多分辞書項目として。私が考えることができる2つのソリューションのそれぞれは、メイン/リクエスト機能に別の処理セットを含みます。
これは、この不測の事態を処理する「正しい」方法ですか? またはより良い方法はありますか?
これに対処する適切な方法は何ですか。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