728x90

 

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

가령 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() 함수가 리턴하는 결과를 이용하여

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

 


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

728x90

+ Recent posts