2016-08-19 7 views
0

하나의 dict을 여러 함수에 전달 중입니다. 말 :이 도전적으로 옳지 않다 거의 10 키 위해 간다한 번에 여러 개의 dict 키를 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 
     ... 
     ... 

:

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

params는 KeyError를 방지하려면, 난에 코드 위에 변경되었습니다.

내가 params에없는 만 키에 한 번 & 할당 없음에있는 모든 키를 확인할 수있는 방법이있다.

어떻게 확인하나요? 이후 나는 또한 검색 후 일부 변수에 키 값을 할당하고 있습니다.

답변

2

당신은 1 개 패스를 할 수 없다, 그러나 당신은 .get 방법을 사용할 수 있습니다 :

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

.get 반환 None을 값이 요청 된 키에 존재하지 않는 경우.