반응형 Development/Python3 Python 프로그래밍 SOLID 원칙 SOLID 원칙S : Single reponsibility. 하나의 컴포넌트는 하나의 책임만 져야한다.O : Open/Close. 확장에는 개방되고, 수정에는 폐쇄되도록 디자인 해야한다.L : Liskov substitution. 리스코프 치환 원칙. 클라이언트는 코드 변경없이 하위타입을 사용할 수 있어야한다.I : D : Open/Close principle확장에는 개방적! 수정에는 폐쇄적!새롭게 처리해야할 것이 들어오면 새로운 것을 처리하는 코드만 추가해야지 기존꺼는 바뀌면 안된다. 바뀐다면 기존코드가 수정에 닫혀있지 않다라는 것을 의미한다. 어떤 로직을 처리하다 보면 if elif elif를 줄줄이 써야하는 경우가 생긴다. 예를 들어서 config파일을 받아서 해당 config에 맞는 모델을 만든.. 2024. 5. 7. 파이썬 클린코드 코드 포맷팅PEP8 : 파이썬 코드 포맷 기준 https://peps.python.org/pep-0008/Linter : PEP8을 따르는 지 검사할 수 있는 라이브러리. lint = 보풀, linter = 코드의 보풀을 제거하는 장치.PylintFlake8 : 코드 스타일 강제화와 강제 변환이 없음.Black : 코드 스타일 강제 변환.Flake8 + Black 조합이면 괜찮은 것 같음. Pythonic 코드 작성법Pythonic code의 장점일반적으로 더 좋은 성능을 낸다.여러명이 작업하기 편해지고 실수를 줄일 수 있다.음수 인덱싱, 슬라이싱C에는 없는 파이썬 고유 기능.Context manager파일, 소켓 연결 후에 자동으로 리소스를 해제해주는 기능.리소스 해제를 고민할 필요없음.리소스 해제 뿐.. 2024. 5. 5. [generator.next() 에러 해결법] AttributeError: 'generator' object has no attribute 'next' Introduction to dataloader Pytorch에서 dataloader를 사용하다 보면 자주 문제가 발생한다. 이번 경우에는 pytorch data loader를 iterator로 변경했을 때 생기는 error에 대해서 해결방법을 써본다. Pytorch data loader는 데이터셋을 효율적으로 불러오고, 전처리 하는 데 사용되는 클래스이다. Data loader를 사용해서 데이터셋을 배치 단위로 로드하고 모델에 입력으로 공급한다. 데이터로더는 딥러닝을 사용할 때 필수적으로 사용하는 클래스이다. Data loader를 사용해서 batch size를 설정할 수도 있고, data shuffle도 가능하고, 각종 전처리까지 data loader 안에서 이루어진다. 데이터셋 코드는 기본적으로 아.. 2023. 6. 22. 이전 1 다음 반응형