ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 에서 선언되지 않은 변수를 처리하는 방법
    Development 2020. 4. 9. 12:05

     

    언어마다 선언되지 않은 변수를 처리하는 방법들이 조금씩 다른 것 같습니다.

    가령 Javascript 에서는 변수가 선언되지 않았을 때 undefined 인지를 확인하는 방법으로

    선언되지 않은 변수를 조건문에서 확인하는 방법을 많이 사용합니다.

    (물론, 이는 Javascript 의 구조적인 특성에서 기인한 부분이라 좀 특별하긴 하죠)

    오래전의 기억을 더듬어 보면 C# 의 경우 null 등으로 비교할 수 있었던 것 같습니다. 

     

    Python 에서 코드를 만들다 선언되지 않은 변수를 처리하려다 보니

    익숙한 다른 언어들하고는 조금 다르게 접근을 해야하는 것 같더군요.

    물론 문제를 해결하기 위해 몇 가지 검색을 해본 것이라 다른 더 좋은 방법이 있을수도 있습니다. 

     

    # try~except 를 이용하는 방법
    try:
    	target_list
    except NameError:
    	target_list = None
        
    if target_list = None:
    	# do something if it's not defined
    else:
    	# do something with variable
    	

     

    첫번째로 찾은 방법은 Exception 을 이용하는 것이었습니다.

    Python 에서는 명시적으로 선언되지 않은 변수를 찾는 Method 가 없다고 합니다.

    try~except 문을 이용하여 변수가 선언되지 않았을 때, 특별한 예약 값 None 을 넣고 if 문을 활용하는 방법입니다.

    훌륭해 보이긴 하는데 왠지 코드의 가독성이 좋은 느낌은 아닙니다.

    try 구문에 # do something if it's not defined 에 구현할 내용을 넣으면 조금 나아질 수는 있겠죠?

     

    # locals(), globals() 를 뒤져보기
    if 'target_list' not in locals():
    	# do something if target_list is not exist
    else :
    	# do something with target_list

     

    다른 방법은 Python 의 변수 특성을 이용하는 방법입니다.

    Python 에서 변수가 선언되면 지역 변수냐 글로벌 변수냐에 따라

    locals() 와 globals() 함수가 리턴하는 결과를 이용하여

    이미 선언된 변수인지 아닌지를 확인해 볼 수 있습니다.

     


    더 좋은 방법이 있다면 파이썬 알못인 저에게 도움 부탁드리겠습니다!
    어찌저찌 돌아가기만 하는 코드는 왠지 찝찝하니까요!

    댓글 0

NoPD