● 변수

변수란? 변하는 수 , 객체(Object)라 한다.


 

※ 변수에 접근하는 방법

- Call by Value
Call by Vallue는 메소드를 호출할 때 값을 넘겨주기 때문에 Pass by Value라고도 한다.
Call by value(값에 의한 호출)는 인자로 받은 값을 복사하여 처리를 한다.
메소드를 호출하는 호출자(Caller)의 변수와 호출 당하는 수신자(Callee)의 파라미터는 서로 다른 변수다.
* 메소드 내 값을 변경해도 원본 값은 반영되지 않는다.

 

- Call by Reference
Call by Reference는 참조(주소)를 직접 전달하며, Pass by Reference라고도 한다.
참조를 직접 넘기기 때문에 호출자의 변수와 수신자의 파라미터는 완전 동일 변수다.
* 메소드 내에 파라미터를 수정하면 그대로 원본 변수에도 반영된다.

 

기본 자료형 : call by value 로 동작 (int, short, long, float, double, char, boolean)
참조 자료형 : call by reference 로 동작 (Array, Class Instance)

** https://devlog-wjdrbs96.tistory.com/44 블로그 참고

 


- 변수 대입 방법

변수 이름 = 변수에 저장할 값

 

예시 1)


예시 2)

** id() 함수 사용 / 리스트 [1,2,3]의 주소값 출력 / 시작할때 마다 값은 바뀐다.


예시 3)

** 파이썬 내장함수 is 사용 시 a와 b의 주소가 같은걸 확인할 수 있다.


예시 4)

* a 리스트의 값을 두번째 요소를 4로 변경 후 b 출력 시 a 뿐만 아니라 b 도 변경 값 출력

** Python은 Call by Reference로 주소값을 복사한다.

 


- 주소값 복사가 아닌 값만 복사하는 방법

1. [:] 슬라이싱 사용

 

예시)

** a의 리스트 값을 변경해도 b 값은 기존 a 리스트를 출력한다.


 

2. copy 모듈 (모듈 이용을 위해 import 사용 필요)

 

예시)

* b = copy(a)는 위 슬라이싱 예시인 b = a[:]와 동일하다 허나 b is a를 통해 확인 시
False가 리턴되므로 b와 a가 가르키는 객체가 다른 것을 알 수 있다.


 

- 변수를 만드는 다양한 방법

 

예시)


- 변수값 바꾸기

 

예시)

** 처음에 a 값은 3, b값은 5가 대입되어 있으나 a, b = b, a 수행 후 변경된 값 출력

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

Python 제어문 - while문  (0) 2024.04.28
Python 제어문 - if문  (0) 2024.04.28
Python 불 자료형  (0) 2024.04.26
Python 집합 자료형  (0) 2024.04.26
Python 딕셔너리 자료형  (1) 2024.04.26

+ Recent posts