2016-08-19 4 views
0

私は1つのdictを複数の関数に渡しています。言う:これはふてくされ適切ではない、ほぼ10キー、のために行くKeyErrorの複数のdictキーを1回のパスでチェックするにはどうすればよいですか?

def func1(self,params): 
    try: 
     self.data=params['KEY1'] 
    except KeyError: 
     self.data=None 
    try: 
     self.value=params['KEY2'] 
    except KeyError: 
     self.value=None 
     ... 
     ... 

params

def func1(self,params): 
    self.data=params['KEY1'] 
    self.value=params['KEY2'] 
    self.ip=params['KEY3'] 
    self.template=params['KEY4'] 
    ..... 
    self.log=params['KEY10'] 

KeyError例外を避けるために、私はにコードの上に変更しました。

は私はparamsで存在しないキーのみに一度&アサインなしですべてのキーを確認することができます任意の方法があります。

どうすればよいですか?私はまた、キーの値を検索した後にある変数に代入しているからです。

答えて

2

あなたは1回のパスでそれを行うことはできませんが、.getメソッドを使用することができます。

def func1(self,params): 
    self.data = params.get('KEY1') 
    ... 

.get戻りNoneを何も値が要求されたキーに存在しない場合。

関連する問題