티스토리 뷰

반응형

다른 프로그래밍 언어와 다르게,

파이썬에서의 변수는

실제로는 값을 저장하는 박스가 아니며

그 위치를 가리키는 이름표(참조)에 불과하다.

 

 

다음 예제를 보자.

1
2
3
4
5
6
= [102030]
= a
b.reverse()
 
print(a)
print(b)
cs

 

 

 

  - 설명 1  

a 리스트에는 [10, 20, 30]이 들어간다.

a는 [10, 20, 30]을 가리키는 것이다.

 

b = a를 하고

b.reverse()를 하면

b = [30, 20, 10]이고

a = [10, 20, 30]일 것 같지만 

결과는 그렇지 않고,

a와 b 동일하게

[30, 20, 10]으로 나타난다.

 

 

 

 

  - 결과  

 

 

 

  - 설명 2  

이는 변수 a가

리스트 [10, 20, 30]을 

가리키고 있기 때문인데,

b = a하게 되면

리스트 [10, 20, 30]이 있던 곳을

b도 a와 같이 가리키게 된다.

 

그러므로 b.reverse()를 하면,

b가 가리키고 있던 리스트가

역순이 되기 때문

같은 곳을 가리키고 있던 a, b의 대상인

리스트 [10, 20, 30]이 

[30, 20, 10]으로 바뀐 것이다.

 

 

 

 

  파이썬 튜터로 본 과정  은 아래와 같다.

(1) a = [10, 20, 30]

 

 

 

 

(2) b = a

 

 

 

(3) b.reverse()

 

 

 

파이썬 튜터를 활용하면

코드 한 줄마다 진행되는 과정을 

그림으로 쉽게 이해할 수 있다.

(pythontutor.com/visualize.html#mode=edit)

 

다른 프로그래밍 언어의

변수 개념과 혼동하지 않도록

주의해야겠다.

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요