본문 바로가기

Web/Fundamental

(2)
RePython 15.5일차 Python에서 mutable자료형은 같은 값의 id(주소)한다 던데 맞을까? Call By Reference Insight 1. 파이썬에서는 is 로 변수들을 비교하자. 2. 튜플과 같은 불변형은 동일한 값을 변수들에게 할당해도 같은 id를 공유한다. 나는 할당 연산자를 무의미 하게 사용한다. 그래서 차이를 정확하게 짚고 넘어가고 mutable과 immutable의 차이를 더 깊게 구분 지어 보고자 한다. 주제를 한마디로 정의하는 것이passed by assignment 불변 타입의 객체를 넘 길때 call by value (==,값) 가변 타입의 객체는 call by reference (is, 주소아이디) 서로 비슷해 보이는 변수의 id를 __eq__ 로 증명해 보자 일단 딕셔너리로 테스트해보자. x = {'name': 'ryu', 'age' : 20} w = {'name': 'ryu', 'age' : 20}..
RePython 5일차 중간 파이썬에서 파라미터와 인자는 왜 구분 하는 걸까? (파이썬에서 파라미터의 기본값은 클래스의 인스턴스화에 어떤 영향을 끼치는가 ?) 이 글은 파라미터, 인자의 구분까지 아신다고 가정하에 작성되었습니다. 그냥 구분을 하는것 보다 왜 왜 구분지어 부르는지에 대해 파헤치는 글입니다. Insight 파라미터에 기본값(mutable)을 지정한 클래스의 인스턴스화는 얕은 복사가 일어난다! 함수에서의 파라미터의 기본값을 사용하는 것은 함수 안의 로컬 영역의 변수(객체) 할당의 행위이다! (단 함수 호출시 인자로 새로운 값을 넣어줘서 디폴트 값을 사용하지 않으면 상관 없습니다. 이렇게 되면 디폴트 값 선언된 것은 사용되어 지지 않습니다!) 함수 내에 파라미터, 인자들도 결국 하나의 값 할당 전의 변수이거나 값을 할당한 변수이다. 파라미터의 기본값을 사용하는 클래스의 인스턴스화는 얕은 복사가 일어난다! 하지만 파라미터와 상관없이 인자를 주면 클래스의..