TIL#14 PYTHON 기초(9)

Dasom·2020년 7월 27일
0

python

목록 보기
11/50
post-thumbnail

immutable

불변(변경불가능한)객체이다. 일반적인 자료형 int, string과 튜플이 있다. immutable에 속한 객체들은 값이 변하면 객체도 함께 변한다.

>>> # int
>>> a = 1   #1
>>> id(a)
4315400864
>>> a = a + 1   #2
>>> id(a)
4315400896
>>> # string
>>> a = 'a'    #'a'
>>> id(a)
4318774896
>>> a = a + 'b'  #'ab'
>>> id(a)
4316966704
>>> # tuple
>>> a = (1, 2)    #(1,2)
>>> id(a)
4320987264
>>> a = a + (3,)   #(1,2,3)
>>> id(a)
4321012800

call by value의 속성을 가지고 있다.

call by value
인자로 받은 값을 복사하여 사용.
장점 - 복사하여 처리하기 때문에 원래의 값이 보존되어 안전하다
단점 - 메모리 사용량이 늘어난다


mutable

가변(변경가능한)객체이다. 리스트와 딕셔너리 등이 있다. 값의 변경이 일어날 때 객체의 값도 변경된다.

>>> # list
>>> a = [1, 2]   # [1, 2]
>>> id(a)
4321008064
>>> a.append(3)  # [1, 2, 3]
>>> id(a)
4321008064
>>> # dict
>>> a = {1:'a'}   # {1:'a'}
>>> id(a)
4338337920
>>> a[2] = 'b'   # {1:'a', 2:'b'}
>>> id(a)
4338337920

call by reference 의 속성을 가지고 있다.

call by reference
인자로 받은 값의 주소를 참조하여 처리.
장점 - 복사를 하지 않기 때문에 빠르다
단점 - 직접 참조를 하기 때문에 원래 값이 영향을 받는다

profile
개발자꿈나무🌲

0개의 댓글