2017-09-19 2 views
-5

다음 Python 코드에서 정의되지 않은 배열에 변수를 넣으려고합니다. 그들이 정의되지 않은 경우 None 값을 할당하고 싶습니다. 이것이 가능한가?NameError를 사용하여 Python에서 변수를 정의하는 방법

try: 
    array = [variable1, variable2] 
except NameError: 
    array[whatever] = None 
+2

왜 정의되지 않았을 수도있는 변수를 사용하려고합니까? 그것들이 정의되었는지 확인하십시오. 기술적으로 NameError를 잡는 것은 가능하지만 일반적으로 나쁜 생각입니다. – user2357112

+0

정의되지 않은 변수는 RTD 측정의 과거 값을 포함하는 변수입니다. 첫 번째 측정에는 과거 값이 없으므로 첫 번째 반복에서는 과거 값이 정의되지 않습니다. –

+0

그래서 * 변수 초기화 *. – user2357112

답변

0

이 나쁜 생각이지만 :

def handle_nameerror(list_to_set, *varnames): 
    for i in varnames: 
     try: 
      list_to_set.append(globals()[i]) 
     except NameError: 
      list_to_set.append(None) 

가 작동합니다.

+0

감사합니다! 왜 그것이 나쁜 생각인지 묻고 싶습니다. –

+0

@DanielCDH 이것은 pythonic가 아닙니다. 이것은 JS 원칙입니다 - 이름 오류에 대해 정의되지 않은 반환. 또한 None으로 폴백하면 혼란이 야기됩니다. JS에서는 이러한 혼란이 중요하지 않습니다. –

관련 문제