목록윤성우 (6)
Developer_Neo
네스티드 함수(Nested Function) - 중첩 함수로써 함수 안에 정의된 함수를 의미한다. 예로 살펴보자 def maker(m): def inner(n): return m*n return inner fl=maker(2) f1(7) # 14 위에서 inner함수가 네스티드 함수가 된다. 이게 왜 가능하냐? 파이썬의 함수는 객체이다 이렇기 때문에 다른함수를 호출할때 인자로도 전달이 가능하기 때문이다. 위의 코드에서 maker함수에서 m이 벗어나면 m은 사라지게 되는데 어떻게 inner함수가 알고선 계산을 올바르게 하는가? 클로저로 알아보자 클로저 위의 질문에 답변을 해보자면 정의한 inner함수가 변수 m의 값을 어딘가에 살짝 저장해두고 쓴다는 것이다. 따라서 안쪽에 위치한 네스티드 함수가 자신이 필..
[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..
네임드 튜플 왜? tri_one = (12,15) print(tri_one) (12, 15) 위의 코드를 보면 우리는 그냥 아 12와 15를 저장해둔 변수구나라고 생각을 한다 하지만 코드를 쓴 사람의 의도는 삼각형을 나타내는 거였고 각각 12 15는 밑변과 높이를 뜻하는 정보였다. 이렇게 됬을때 서로의 소통적이 문제가 발생할 수 있다. 그래서 쓰는 것이 네임드 튜플이다. 추가적으로 파이썬에서는 클래스에 대한 부분을 따로 작성하는 부분으로 네임드튜플로 했지만 3.7버전이후부터는 @dataclass라는 어노테이션을 이용해서 만들 수 있게 되어 네임드 튜플을 사용빈도가 줄어들었다. from dataclasses import dataclass @dataclass class User: id: int name: s..
기존 메모리 관리의 문제점 필요 없는 메모리를 비우지 않았을 때 메모리 사용을 마쳤을 때 비우지 않을 경우 메모리 누수가 발생 장기적인 관점에서 심각한 문제가 발생 존재하지 않는 메모리에 접근하려고 하면 프로그램이 중단되거나 메모리 데이터 값이 손상될 수 있다 이러한 문제를 해결하기 위해 현대적인 언어는 자동 메모리 관리(Automatic Memory Management)를 갖추게 되었다. 파이썬에선 기본적으로 Garbage Collection(가비지 컬렉션)과 reference counting(레퍼런스 카운팅)을 통해 할당된 메모리를 관리한다 가비지컬렉션(Garbage Collection) 소멸 규칙 및 과정을 이야기하는 것으로 메모리를 자동으로 관리해주는 과정이다 레퍼런스 카운트 참조 횟수(refer..
파이썬의 아홉 가지 자료형 분류 자료형 특징 예 수치 자료형 정수 -3,-2,-1,0,1,2,3 실수 3.14 , 5.5 , 8.0 0.54, -3.89 복소수 3+4j, 5.7+2J , 5+j 부울 자료형 부울 True, False 군집형태 자료형 (컨테이너 자료형) 시퀀스 자료형 문자열 'hello', "python" 리스트 [1,2,3,4], ['red', 'blue'] 튜플 (1,2,3,4), ('red', 'blue') 집합 오름차순으로 정렬됨 기호는 {} {1,2,3}, {'red', 'blue'} 사전 기호 {key: value} {'one': 1, 'two' :2} mutable vs immutable mutable 자료형 - 변경 가능한 자료형 immutable 자료형 - 변경 불가능한 ..