module 3

싱글톤 패턴, 게으른 초기화, 모듈 싱글톤

싱글톤 패턴 글로벌하게 접근 가능한 단 한 개의 객체만을 허용하는 패턴 주로 로깅이나 디비, 프린터 스풀러 등 동일한 리소스에 대한 동시 요청의 충돌을 막기 위해 사용 목적 클래스에 대한 단일 객체 생성 전역 객체 제공 공유된 리소스에 대한 동시 접근 제어 구현 코드 class Singleton(object): # __new__를 오버라이드 한다. def __new__(cls): # hasattr는 객체가 instance 속성을 가지고 있는지 확인한다. (객체의 존재 유무 확인) if not hasattr(cls, 'instance'): # 클래스 객체가 없다면 객체를 할당한다. cls.instance = super(Singleton, cls).__new__(cls) # 기존 또는 할당한 객체를 반환한다..

Python _ 리스트 요소 개수 세기(dictionary, collections)

리스트에 어떤 요소의 개수를 파악해야하는 때가 있습니다. (특히 코딩테스트에서 사용할 일이 많습니다) 그래서 오늘은 요소 개수를 세는 방법을 정리해보고자 합니다. dictionary 사용 # 요소를 세고 싶은 리스트 >>> list = [1,2,3,4,5,5,5,5,5,1,1] # 빈 딕셔너리를 생성 >>> dict = {} # 요소가 딕셔너리에 있다면 += 1, 없다면 = 1 >>> for num in list: if num in dict: # dict.get(num)로 대체가능 dict[num] += 1 else: dict[num] = 1 # {요소(키): 개수(값)} 형태의 딕셔너리 생성 >>> dict {1: 3, 2: 1, 3: 1, 4: 1, 5: 5} 기본 딕셔너리를 사용하는 베이직한 방법입..

sys.module 과 sys.path 의 차이점

sys sys는 파이썬에 포함되어 있는 Import 해야하는 모듈 sys는 built-in 되어 있으므로 bulit-in modules에서 찾을 수 있다. sys.module 파이썬이 모듈이나 패키지를 찾기위해 가장 먼저 확인하는 곳 딕셔너리구조 이미 import 되어있는 모듈과 패키지 저장함 새로 import 하는 모듈은 sys.modules 에서 찾을 수 없음 sys.path 가장 마지막으로 확인하는 장소 string 요소들을 가지고 있는 list. ex. ['/Users/song-eun-u/anaconda3/lib/python3.6', '~~'] sys.path에서도 모듈을 발견하지 못하면 ModuleNotFoundError 에러를 리턴 sys.module 과 sys.path 의 차이점 1. 찾는 ..