複数の投稿で申し訳ありません。周りを見回したところ、try メソッド以外に何も見つかりませんでした。これは、状況によっては便利なようですが、私のものではありません。
私が探しているのは、一種のエラーをスキップする方法であるため、コンソールに表示せず、スクリプトを停止せず、それらをバイパスする方法です。
すなわち;
1. call a list
2. If list does not exist
3. create the list
複数の投稿で申し訳ありません。周りを見回したところ、try メソッド以外に何も見つかりませんでした。これは、状況によっては便利なようですが、私のものではありません。
私が探しているのは、一種のエラーをスキップする方法であるため、コンソールに表示せず、スクリプトを停止せず、それらをバイパスする方法です。
すなわち;
1. call a list
2. If list does not exist
3. create the list
Python では、これは で達成されtry...except
ます。あなたの場合、おそらくキャッチしたいでしょうNameError
。
try:
L[0]
except NameError:
L = ["Example",2]
L[0]
try
..except
確かに行く方法の1つです。関数内で引数をテストしようとしている場合、この引数をデフォルト値で定義し、次のNone
ようにテストすると便利なことがよくあります。
def myfunc(..., mylist=None):
if mylist is None:
mylist = []
( Python での None テストも参照してください)
リストが空かどうかを調べたい場合は、次のように入力します
if mylist:
print mylist
else:
print "empty list"
try
これらのタイプのテストと..概念の主な違いexcept
は、私のコード例では、変数が定義されていることを確認する必要があることです (たとえば、関数の引数として)。そうしないと、例外が生成されます。そして、これはまさにtry
..except
構成が丁寧に処理するものです。
結局、それは哲学的かもしれません (そして、これで Python の禅に違反しないことを願っています): どの変数が未定義である可能性があるかを知っていれば、コードをコーディングすると、コードの可読性と回復力が向上します。エラー処理を明示的に。「それを起こさせて」必要な場所だけを修正する方がよりpythonicだと言う人もいるかもしれません。「クイック ハック」を作成している場合は、解決策 2 で問題ないことがよくあります。他のユーザーが使用することになっているアプリケーションの場合は、通常、明示的なエラー処理を好みます。