immutable

immutable은 값이 변경 안되는 요소를 얘기한다. 즉, 이뮤테이블은 상수다.

예를 들면 int, str, float, bool, tuple 이런 변수들을 말한다.

def f1(num, name):
    print('f1에서 변경 전')
    print('num:', num)
    print('name:', name)
    num = 123
    name = 'asf'
    print('f1에서 변경후')
    print('num:', num)
    print('name:', name)

def main():
    num = 10
    name = 'aaa'
    print('main에서 변경 전')
    print('num:', num)
    print('name:', name)
    f1(num, name)
    print('main에서 변경후')
    print('num:', num)
    print('name:', name)    

main()

out)

 출력을 봤을 때, f1에서는 변수 값이 변화됐지만 메인에서는 변화되지 않았다.

이뮤테이블들은 변화가 불가능한 값이기 때문!

 

 

mutable

뮤테이블은 이뮤테이블의 반대이다. 변경되는 값들을 얘기한다. 대표적으로 리스트, 셋, 딕셔너리 등

def f1(arr):
    print('f1안에서 변경전:',arr)
    arr[0]=100
    print('f1안에서 변경후:',arr)

def main():
    x = [1,2,3,4,5]
    print('main안에서 변경전:',x)
    f1(x)
    print('main안에서 변경후:',x)   

main()

 

out)

 

출력에서 보다시비 함수 f1 안에서도 튜플 0번이 바뀌었고 메인에서도 바뀌었다.

이뮤테이블과 뮤테이블의 차이는 변수를 튜플로 인식하냐는 것에서 큰 차이가 있다.

+ Recent posts