파이썬에서 복사는 두 가지 의미가 있다. 하나는 레퍼런스 복사, 또 하나는 실제 객체의 복사이다.


레퍼런스 복사란 객체는 그대로 두고 객체를 참조하는 주소만 복사하는 것이다.

객체 복사란 같은 값을 가지는 객체를 하나 혹은 그 이상 만드는 것이다. 대표적인 예가 슬라이싱이다. (슬라이싱을 이용하면, 완전히 다른 별개의 객체가 된다.)


copy 모듈을 이용한 객체 복사

copy 모듈은 얕은 복사(Shallow copy)를 하는 copy 연산과 깊은 복사(Deep copy)를 하는 deepcopy 연산을 제공한다.

얕은 복사: 복합 객체를 별도로 생성하되 내용은 원래의 레퍼런스로 채운다.

깊은 복사: 복합 객체를 생성하고 내용을 재귀적(Recursive)으로 복사한다.


※ 깊은 복사를 할 때는 객체들이 재귀적인 구조를 가지고 있지 않은가 주의해야 한다. 또한 깊은 복사는 모든 것을 복사해 버리므로 공유되어야 할 자료가 포함되어 있지 않은가 주의해야 한다.



물자열로의 형 변환

객체를 문자열로 변환하려면 다음의 세 가지 방법을 사용할 수 있다.

str() - 문자열로 변환

repr() - 문자열로 변환

`obj` - repr(obj)와 같음


str은 비형식적인 문자열 변환이다. 즉, 보기 좋게 출력될 문자열을 생성한다고 생각하면 된다.

repr은 좀 더 형식적인 문자열 변환이다. 객체의 자료형을 정확하게 문자열로 표현하며, eval로 역표현이 가능하다.




임의의 진수로 변환



10진수에서 2진수로

binary.py


10진수를 2진수로

binary2.py



정수를 콤마가 있는 문자열로 변환

locale 모듈은 나라마다 문화적으로 표현이 다른 것들을 처리할 수 있게 도와준다.


'Programming > Python' 카테고리의 다른 글

파일 입/출력 예제  (0) 2013.03.12
파일 객체 속성들  (0) 2013.03.11
집합 자료형  (0) 2013.03.07
사전 자료형을 이용한 전화번호부 프로그램  (0) 2013.03.06
사전 (Dictionary)  (0) 2013.03.06
Posted by scii
: