「NameError」例外を防ぐ前方宣言関数
Python では、関数を使用する前に定義する必要があります。これにより、カスタム 'cmp' 関数を使用してリストを並べ替える場合など、コードの後半で関数が定義されるときに、'NameError' 例外が発生する可能性があります。
この問題を回避するには、「forward-declare」を使用することができます。 " 定義される前の関数。これには、関数呼び出しを別の関数
def sort_list():
sorted_list = sorted(mylist, cmp=cmp_configs)
print("\n".join([str(bla) for bla in sorted_list]))
def cmp_configs(...) -> int:
...
cmp_configs の前に sort_list を定義すると、Python は前方宣言を「確認」し、'NameError' 例外を回避できます。
再帰関数と前方宣言
再帰関数の場合、ある関数の定義が別の関数に依存する場合、同じ関数内で前方宣言すると便利です:
def spam():
def eggs():
if end_condition():
return end_result()
else:
return spam()
if end_condition():
return end_result()
else:
return eggs()
spam()
スパム内の卵を前方宣言することにより、Python は関数名を認識し、再帰呼び出しを安全に実行できます。
結論
Forward -呼び出しを別の関数にラップするか、再帰関数内で内部関数を使用して関数を宣言すると、コードの後半で関数が定義されるときに 'NameError' 例外が発生するのを防ぐ回避策が提供されます。ただし、コードを編成し、関数間の依存関係のループを避けることが常に良い習慣であることに注意することが重要です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3