mutable ? immutable ? 이 외 python etc..
-
Immutable: Once instance has been created, its instance value can’t be changed (call by value)
-
Mutable: 그 반대(call by reference)
-
하지만, object 를 참조하는 식별자는 다른 값으로 바뀔 수 있다.
-
Immutable 하다는 것은 한 heap 에 할당된 값이 변하지 않는 것을 말한다.
-
Immutable 하므로, x 값을 y 에 할당하더라도 x에 할당된 벨류는 변하지 않고 y에 할당된 값과는 다른 값으로 독립적으로 남아있다.
-
mutable은 아래와 같이 한 메모리를 공유하는 것을 볼 수 있다.
-
클래스 변수
-
- 모든 클래스의 인스턴스 간에 값을 공유하는 변수
-
-
인스턴스 변수
-
- 인스턴스마다 개별적으로 다른 값을 가지는 변수
-
- self.변수명으로 사용하면 인스턴스 변수가 됨.
-
변수 앞에 ‘_’ (single underscore)를 붙이는 이유 -> 주로 한 모듈 내에서 private class, 함수/변수/메서드를 선언할 때 사용하는 컨벤션임
-
Abstract Base Class?
When we defining some super class and its only purpose is to serve as a base class though inheritance, we say this super class is an abstract base class
즉, 어떤 부모클래스가 오직 상속을 하기 위한 목적이라면, 이 부모클래스를 추상 베이스 클래스라고 하는 것이다 .