728x90

Python 4

[python] Context Manager

컨텍스트 매니저 : 원하는 타이밍에 정확하게 리소스를 할당 및 제공, 반환하는 역할가장 대표적인 with 구문 이해 with open('./testfile2.txt','w') as f: f.write('Context Manger')with문을 사용하면 따로 close() 함수를 사용하지 않아도 자원을 반환합니다.  with문 커스텀마이징클래스를 만들어서 자원의 할당과 반환하는 역할 제공class MyFileWriter(): def __init__(self,file_nmae,method): pirnt('MyFileWriter started : __init__') self.file_obj = open(file_nmae, method) def __enter__(self): pr..

Python 2025.01.26

[python] Shallow Copy & Deep Copy (얕은 복사와 깊은 복사)

a_list = [1,2,3,[4,5,6],[7,8,9]]b_list = a_list두 객체는 같은 주소값을 참조한다.여기서 b_list[2] = 100 으로 변경 시 a_list의 값도 함께 변경되기 때문에 예상치못한 오류가 발생 할 수 있다.  Shallow copy (얕은 복사) import copyc_list=[1,2,3,[4,5,6],[7,8,9]]d_list = copy.copy(c_list)copy 사용시 다른 주소값을 할당받아서 생성한다. 두 객체 다른 주소값을 가르킨다 d_list[1] = 100 으로 변경 시 d_list 값만 변경된다. *주의사항*리스트내부의 리스트값은 또 주소값을 서로 공유하고 있기 때문에 얕은복사의 경우 d_list[3].append(1000) 실행 시 c_list..

Python 2025.01.12

[Python] Lambda, Reduce, Map, Filter 함수

lambda 장점 : 사용 즉시 메모리에서 소멸 , pythonic, 1회성 사용 시 좋음일반함수 : 재사용성 위해 메모리 저장 lambda 사용 digits1 = [x * 10 for i in range(1,11)]result = list(map(lambda i: i**2, digits1)) #lambda i 매개변수 :i**2 반환값print(result)결과 : [100,400,900,1600 ... 10000]lambda 매개변수 : 반환값map으로 함수를 인자로 입력받고 리스트값을 한개씩 순회하면 결과 반환 일반함수 사용def also_sauare(nums): def double(x): return x**2 return map(double,nums)print(list(also_sq..

Python 2025.01.03

[Python] 클로저(closure)

파이썬에서 클로저(closure)는 함수 내부에 정의된 또 다른 함수가, 그 외부 함수의 변수들을 저장하여 사용할 수 있는 기능을 말합니다. 클로저를 사용하는 주요 이유는 코드의 가독성을 높이고, 데이터를 캡슐화하며, 특정 패턴을 효율적으로 구현하기 위해서입니다. + 전역변수 남용 예방 클로저를 사용한 코드 def make_multiplier(factor): def multiplier(number): return number * factor return multiplierdouble = make_multiplier(2)triple = make_multiplier(3)print(double(5)) # 10print(triple(5)) # 15  클로저를 사용하지 않고 클래스 기반..

Python 2025.01.01
728x90