2

複数の投稿で申し訳ありません。周りを見回したところ、try メソッド以外に何も見つかりませんでした。これは、状況によっては便利なようですが、私のものではありません。

私が探しているのは、一種のエラーをスキップする方法であるため、コンソールに表示せず、スクリプトを停止せず、それらをバイパスする方法です。

すなわち;

1. call a list
2. If list does not exist
3.     create the list
4

2 に答える 2

5

Python では、これは で達成されtry...exceptます。あなたの場合、おそらくキャッチしたいでしょうNameError

try:
    L[0]
except NameError:
    L = ["Example",2]
    L[0]
于 2013-01-06T16:58:41.047 に答える
1

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 で問題ないことがよくあります。他のユーザーが使用することになっているアプリケーションの場合は、通常、明示的なエラー処理を好みます。

于 2013-01-06T17:47:16.840 に答える