2016-08-19 4 views
0

Я передаю один dict для нескольких функций. Скажи: paramsКак проверить несколько ключей dict для KeyError за один проход?

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, я изменил выше кода:

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

Это идет почти 10 ключей, которые демонстративно не прав.

Есть ли способ, что я могу проверить все ключи в один раз & Назначают None для только ключи, которые не присутствуют вparams.

Как я могу это проверить? Поскольку я также присваиваю значение ключа некоторой переменной после извлечения.

ответ

2

Вы не можете это сделать в 1 проход, но вы можете использовать метод .get:

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

.get возвращает None, если значение не присутствует в запрашиваемом ключе.

Смежные вопросы