を実行なぜ、私は基本的にこれを行う機能を持っている:Pythonは:私の関数はNoneを返しますし、そのように
import os
import json
import requests
from openpyxl import load_workbook
def function(data):
statuslist = []
for i in range(len(data[0])):
result = performOperation(data[0][i])
if result in satisfying_results:
print("its okay")
statuslist.append("Pass")
else:
print("absolutely not okay")
statuslist.append("Fail" + result)
return statuslist
をその後、私はこのような機能を呼び出す(私は何だろうチェックするためにエラー処理を追加しました関数はNoneを返し、その後、実行されると、)この質問を私のための理由によりつまずく後に発生し、実際の結果に驚きました。
statuslist = function(data)
print(statuslist)
try:
for i in range(len(statuslist)):
anotherFunction(i)
print("Confirmation that it is working")
except TypeError:
print("This is utterly nonsense I think")
次のようにプログラムの出力は次のようになります。
None
This is utterly nonsense I think
its okay
its okay
its okay
absolutely not okay
its okay
関数の最後には単一のreturn文しかありません。関数は再帰的ではなく、かなり単純でトップダウンです(ただし、その間に多くのデータを解析します)。
出力ログからは、最初にNoneが返され、正しく実行されたように見えます。私は困惑していて、インターネット上で同様の問題を見つけることができませんでした。 コードに矛盾があったとしても、代わりに[]を返すと思います。
初期リストをstatuslist = ["WTF"]に変更すると、戻り値は[]になります。 関数(データ)で実行された他の関数のリストを変更したことを除外するために、初期リストの名前を何度か変更しました。問題をデバッグするヒントに非常に感謝しています。なぜ関数は最初に値を返し、その後に実行されますか?
これを再現するのに十分な情報がないようです。最初の関数のforループで 'data [0]'を意味しますか?たくさんのコードをコメントアウトしてから、それを元に戻して何が起こるかを確認するとどうなりますか? – doctorlove
'data'、' performOperation() '、' satisfying_results'、 'anotherFunction'の問題を再現できません。 –
再現性がありません。 [mcve]を提供してください。 –