언어마다 선언되지 않은 변수를 처리하는 방법들이 조금씩 다른 것 같습니다.
가령 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() 함수가 리턴하는 결과를 이용하여
이미 선언된 변수인지 아닌지를 확인해 볼 수 있습니다.
더 좋은 방법이 있다면 파이썬 알못인 저에게 도움 부탁드리겠습니다!
어찌저찌 돌아가기만 하는 코드는 왠지 찝찝하니까요!