[ Python ] 동적 변수 할당 및 불러들이기

2019. 12. 15. 21:18분석 Python/구현 및 자료

도움이 되셨다면, 광고 한번만 눌러주세요.  블로그 관리에 큰 힘이 됩니다 ^^

R에서는 string 객체에 값을 넣은 다음에 할당할 수 있는 방법이 있다. 

assign 함수와 mget의 함수를 사용하면 된다.

##R

## string 객체에 값 할당하기 
asssing("object1" , 5 )

## 불러들이기
mget("object1")

### 5

이제까지 파이썬을 사용할 때 이러한 것에 대해서 몰라서 굉장히 불편하게 dict에 담아둬서 key값으로 불러내는 방법을 사용했다. 하지만 아직 더 나아가서 함수든 지 객체던지 모두 저장하는 방법에 대해서도 알고 싶다.
R에는 save 함수가 있는데, 이러한 기능이 파이썬에서도 있는지 궁금하다.

파이썬에서는 sys 함수를 사용하면 동적 변수 할당이 가능하다는 것을 알게 되었다!

import sys , numpy as np
mod = sys.modules[__name__]
for idx in range(5) :
    setattr(mod, 'object_{}'.format(idx),  idx )

여기선 Loop를 돌면서 object_0 ~ object_4까지 생성하였다. 

그렇다면 이것을 불러오면 다음과 같이 사용할 수 있다.

그렇다면 이러한 값을 string 객체에서 값으로 가져오게 하려면 어떻게 해야 할까??

for idx in range(5) :
    print(getattr(mod,  'object_{}'.format(idx)))

.
처음 봤을 떄 나의 표정들

그러면 setattr 함수가 아닌 원래 있는 값도 가능할까?!

잘 된다!

Loop를 돌면서 객체를 따로 저장하고 싶을 때 매우 매우 유용한 팁인 것 같다!

 

참고 : 
https://wikidocs.net/13945

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

https://www.thoughtco.com/using-pickle-to-save-objects-2813661

 

Using Pickle to Save Objects in Python

Python's pickle module is an easy way to save Python objects in a standard format. It is a basic fundamental skill with Python.

www.thoughtco.com

 

728x90