목록중급편 (4)
Developer_Neo
[python] 연산자 오버로딩, 정보은닉과 , __dict__ [python] 연산자 오버로딩, 정보은닉과 , __dict__ 연산자 오버로딩 __add__(self, other) : + 연산자(A + B또는 A += B) __iadd__(self, other) : + 연산자(A += B) __sub__(self, other) : - 연산자(A - B, A -= B) __isub__(self, other) : - 연산자(A -= B) __.. devloper-dreaming.tistory.com 에서 보았듯이 정보은닉관점에서 객체가 갖는 값에 직접 접근하는 것은 오류의 확률을 높일 수 있으므로 메소드를 통해 접근하는 것이 안전하다고 했었다. 그래서 나온 메소드들은 getter와 setter인데 메소드 ..
파이썬의 클래스 역시 상속이라는 것을 할 수 있다. class Father: def run(self): print("so fast!!!") class Son(Father): def jump(self): print("so high!!!") def main(): s = Son() s.run() s.jump() main() ''' so fast!!! so high!!! ''' 위의 코드를 보면 클래스가 Father와 Son이 있는 것을 볼 수 있다. 여기에서 상속이라는 것을 했는데 바로 class Son(Father): 이 문장이었다. 이렇게 상속을 하게 되면 Son은 자식클래스이자 서브, 하위클래스가 되고 Father는 부모클래스이자 슈퍼, 상위 클래스가 된다. 따라서 Son클래스를 이용해서 만든 객체는 F..
처음에 Iterable객체와 Iterator객체는 무슨차이가 있는지 iter()와 next()함수는 언제 쓰는지에 대해 많이 혼동되었다. 그래서 정리하게 되었다. Iterable객체(자료형) 컨테이너 자료형 - 문자열, 튜플, 집합, 사전 내장함수 - range(), reversed(), enumerate(), filter(), map(), zip() Iterator객체 iter함수를 거쳐서 나온 것으로 iter함수가 생성해서 반환하는 객체이다. next()함수로 객체 안의 다음 값을 쉽게 얻을 수 있다. ir = iter( iterable객체 ) 로써 선언을 하면 ir은 Iterator객체된 것이고 next()함수를 사용할 수 있따는 것이다. next( iterator객체 ) 따라서 계속해서 next함..
기존 메모리 관리의 문제점 필요 없는 메모리를 비우지 않았을 때 메모리 사용을 마쳤을 때 비우지 않을 경우 메모리 누수가 발생 장기적인 관점에서 심각한 문제가 발생 존재하지 않는 메모리에 접근하려고 하면 프로그램이 중단되거나 메모리 데이터 값이 손상될 수 있다 이러한 문제를 해결하기 위해 현대적인 언어는 자동 메모리 관리(Automatic Memory Management)를 갖추게 되었다. 파이썬에선 기본적으로 Garbage Collection(가비지 컬렉션)과 reference counting(레퍼런스 카운팅)을 통해 할당된 메모리를 관리한다 가비지컬렉션(Garbage Collection) 소멸 규칙 및 과정을 이야기하는 것으로 메모리를 자동으로 관리해주는 과정이다 레퍼런스 카운트 참조 횟수(refer..