티스토리 뷰
1 | id(n) | cs |
id 함수를 통하여 우리는 n 변수의 주소를 확인해 볼 수 있다.
1 2 3 4 | a = 5 b = 3 print(id(a), id(b)) | cs |
위 코드를 통하여 a와 b의 id를 확인해 보자.
정상적으로 출력이 되었는가
그렇다면 a의 값을 3으로 바꾸어 출력해보자.
1 2 3 4 | a = 3 b = 3 print(id(a),id(b),id(3)) | cs |
<출력형태>
뭔가 잘못되었다는 것을 출력형태를 통하여 확인할 수 있다.
a의 id와 b의 아이디 상수 3의 id가 전부 같다는 것인데.. C언어에서는 있을 수 없는 일이다.
하지만 파이썬에서는 모든 변수가 포인터타입으로 값을 가리킨다고 볼 수 있다. 그렇다고 원래 없던 포인터 개념이 생기지는 않는다. C언어처럼 *을 붙여서 역참조하여 원본값을 바꾸는 일은 불가능 하다는 것이다.
이 페이지에서 말하고 싶은 바를 한줄로 정리하자면 파이썬에서 해당 값을 가리키는 id값은 있지만 포인터 개념은 없다는 것이다.
id값은 컴퓨터 내부에 존재하는 것이고 이 값을 통해 우리가 할 수 있는 것은 없다.
따라서 파이썬을 학습하는데 있어서 포인터에 대한 미련을 버려야 되겠다.
'파이썬' 카테고리의 다른 글
파이썬 예제 : 리스트 내장(List Comprehension) (0) | 2015.05.20 |
---|---|
파이썬 : 람다 함수 (lambda function) (0) | 2015.05.20 |
파이썬 예제 : 튜플(Tuple)을 정렬(Sort)하는 여러가지 방법 (1) | 2015.05.19 |
파이썬 예제 : 리스트를 정렬(Sort)하는 여러가지 방법 (2) | 2015.05.19 |
파이썬 예제 : 별(*) 찍기 (3) | 2015.05.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 악보
- C
- 프로세스
- 파이썬예제
- 소켓
- C/C++
- 파일
- 정렬
- 스레드
- Sort
- 디렉터리
- 데이터베이스
- C++
- 터미널
- 안드로이드
- 라즈베리파이
- 티라노 시그널
- MFC
- 액터
- socket
- UML
- 클래스
- 쓰레드
- 파이썬
- 소켓 프로그래밍
- 유즈케이스
- 리눅스
- 자료구조
- 티그널
- 클라이언트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함