1

私は辞書でエラー処理を扱っています。これらのキーのそれぞれが、エラーが発生した場合にすべてをスキップせずに (それらを 1 つの try ブロックに入れることによって) 検索している辞書にあるかどうかを確認する巧妙な方法はありますか?

明らかに、各キーを一度に 1 つずつチェックでき、それで問題なく動作しますが、より見栄えの良い方法を探しています。

コード:

try:
    categories = self.getList(dict[categories])
except KeyError:
    print "No categories found!"

try:
    interests = self.getList(dict[interests])
except KeyError:
    print "No interests found!"

try:
    shops_at = self.getList(dict[shops_at])
except KeyError:
    print "No shops_at found!"

try:
    eats_at = self.getList(dict[eats_at])
except KeyError:
    print "No eats_at found!"
4

1 に答える 1

1

上記のコードの機能をループで複製する方法を次に示します。

params = {categories: "categories", interests: "interests",
        shops_at: "shops_at", eats_at: "eats_at"}

for k in params:
    try:
        value = self.getList(dict[k])
    except KeyError:
        print "No %s found!" % params[k]
于 2013-10-11T20:40:45.090 に答える