파이썬
-
python @runtime_checkable이란? (openai 개발자들이 짠 python code 예시 함께 살펴보기)python 2024. 2. 24. 14:38
python 3.8부터 도입된 @runtime_checkable 데코레이터를 사용하면 프로토콜 클래스를 런타임에서 isinstance() 및 issubclass() 함수와 함께 사용할 수 있게 됩니다. 프로토콜 클래스란 typing.Protocol을 상속받은 클래스를 말합니다. runtime_checkable은 같은 클래스를 상속받진 않았지만, 런타임에서 타이핑 검증을 하고 싶을 경우 유용하게 쓸 수 있는 데코레이터입니다. 말로 하면 이해가 잘 안되니 코드로 설명해보겠습니다. 1. @runtime_checkable를 사용하지 않은 경우 우선 @runtime_checkable를 사용하지 않은 일반적인 상황입니다. JsonSerializable, Person 두 클래스 모두 아무것도 상속받지 않은 순수 클래..
-
파이썬 클린코드 3python 2022. 2. 26. 10:10
데코레이터 목표 파이썬에서 데코레이터가 동작하는 방식을 이해 함수와 클래스에 적용되는 데코레이터를 구현하는 방법을 배운다. 일반적인 실수를 피하여 데코레이터를 효과적으로 구현하는 방법을 배운다. 데코레이터를 활용한 코드 중복을 회피(DRY 원칙 준수) 데코레이터를 활용한 관심사의 분리 좋은 데코레이터 사례 데코레이터가 좋은 선택이 될 수 있는 일반적인 상황, 관용구, 패턴 파이썬의 데코레이터 함수와 메서드의 기능을 쉽게 수정하기 위한 수단으로 나옴. original 함수가 있고 그 기능을 약간 수정한 modifier라는 함수가 있다면 원래 아래처럼 썼다.def original(): pass original = modifier(original) - 위 방법은 혼란스럽고 오류가 발생하기 쉽고 번거롭다. - ..
-
파이썬 심화: 변수와 메모리python 2022. 2. 12. 22:42
Reference Counting 파이썬은 객체가 참조될 때마다 ref_count를 +1한다. 0이 되면 python memory manager가 객체를 메모리에서 삭제함. (할당 해제) import sys my_var = [1,2,3] sys.getrefcount(my_var) Garbage Collection 순환참조의 경우 ref_count는 절대 0이 되지 않는다. 이 경우 referece counting을 통해 python memory manager가 객체를 메모리에서 삭제할 수 없음. -> memory leak 발생 GC는 순환참조인 것들을 메모리에서 지워주는 역할을 한다. gc는 기본적으로 turn on 상태다. gc 모듈을 사용해서 gc를 끄거나 수동실행 등 조작할 수 있다. Variabl..
-
엄청 쉬운 python 파일 쓰기, 파일 읽기, 사진 다운받기python 2021. 4. 6. 10:32
1. 파일 쓰기 1-1. 파일 새로 만들기(기존 파일 덮어 씌우기) 파일을 쓸땐 write의 의미로 'w'을 써줍니다.. with open('new_file.txt', 'w') as f: f.write("Hello world!\n") f.write("Nice to meet you\n")이렇게 하면 f.write안의 내용을 담은 new_file.txt라는 파일이 생깁니다.. 똑같은 명령어를 또 치면 파일이 덮어씌어집니다.. 1-2. 기존 파일에 내용 추가하기 덮어쓰기를 하지 않고 아래에 내용을 추가 하려면, 'w' 대신 add의 의미로 'a'를 써줍니다. with open('new_file.txt', 'a'..