Language/Python 3

[Python] copy와 deepcopy의 차이

copy & deepcopycopy와 deepcopy는 파이썬의 copy 모듈에서 제공하는 두 가지 복사 방법이다.두 개의 차이를 이해하기 위해서는 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)에 대해 알아야한다! 얕은 복사 (copy.copy())객체를 새롭게 생성하지만, 내부의 요소들은 원본 객체와 같은 참조를 가진다.즉, 최상위 객체 (바깥쪽 객체)는 새롭게 생성되지만, 내부의 요소 (하위 객체들)는 원본 객체와 같은 주소를 공유하게 된다. import copylist1 = [[1, 2, 3], [4, 5, 6]]list2 = copy.copy(list1)list2[0][0] = 100 # 내부 요소를 변경print(list1)print(list2)list2를 copy.copy..

Language/Python 2025.02.10

[Python] ContextManager의 개념

ContextManagercontextmanager는 파이썬의 ContextManager 프로토콜을 구현하는 기능으로, with 문을 사용할 때 리소스 (자원)의 획득 및 해제를 자동화하는 역할을 한다.예시로, 파일 입출력, 데이터베이스 연결, 네트워크 소켓 사용 등에서 활용된다. contextmanager는 __enter__와 __exit__ 메서드를 구현하여 특정 코드 블록이 실행되는 동안 필요한 리소스를 설정하고, 블록이 끝나면 자동으로 해제하는 구조를 제공한다. - 파일을 읽고 파일을 자동으로 닫는 예제with open("file_txt", "r") as f: content = f.read() # 파일을 읽는 부분# with 블록을 벗어나면 파일이 자동으로 닫힌다 ContextManager Dec..

Language/Python 2025.02.10

[Python] Python Decorator 개념과 활용

Python DecoratorPython Decorator는 기존 함수를 수정하지 않고, 기능을 추가하거나 수정할 수 있는 기능을 말한다.재사용성과 확장성을 가진 것이 특징이다!직접 Decorator 패턴을 구현할 수 있지만, Python에서는 표현적 구문과 기능을 제공함으로써 Decorator 구현을 쉽게 할 수있도록 한다. 함수의 특징1. 함수를 변수에 대입할 수 있다.# 함수를 변수에 할당해보자def greeting(name): return f"Hello, {name}!" say_hello = greeting # 함수 객체를 변수에 대입하기print(say_hello("Seora")) 2. 함수 내부에 다른 함수를 정의할 수 있다.def outer_function(): def inner_fun..

Language/Python 2025.02.10