Programming language 13

python2, python3 혼용 사용(동시 사용, 함께 사용) 환경

필자는 python2.7과 3.10을 함께 쓰고 있다. vscode 에서 인터프리터로 3.10을 잡고, 명령 프롬프트에서는 2.7을 사용하고 있었는데 명령 프롬프트에서 python 3를 써야했기에 글을 남깁니다. 짧막하게 요약해서 남깁니다. mklink 커맨드를 통해 커맨드를 연결해주면 되는데, cmd ( 관리자 권한으로 실행 ) > mklink C:\Windows\python2.exe [파이썬 2 설치경로]\python.exe > mklink C:\Windows\python3.exe [파이썬 3 설치경로]\python.exe 를 사용해주면 된다. 대부분의 python 2 설치 경로는 C:\Python27 python3 설치 경로는 C:\[사용자폴더]\AppData\Local\Programs\Python..

[클린코드 작성하기] 주석 & 포맷팅

주석 모든 내용을 주석으로 넣게되면 코드가 지저분 해짐. 네이밍을 잘하면 충분히 해결 가능 네이밍으로 표현할 수 없는 영역을 주석으로 표현하기 바람. 법적인 정보 담을 때 : Copyright등등.. 의도를 명확하게 설명할 때 : 함수내 알고리즘 설명할 때, 중요성을 강조할 때 결과를 경고할 때 관용적으로 사용되는 키워드 TODO : 당장은 아니지만 다음에 해야할 때 ( TODO@sihyeon : 객체의 책임 더 분리하기 등등 ) FIXME : 치명적인 에러를 발생하는 코드는 아니지만 수정해야할 때 ( 반복문의 depth를 줄이기 ) XXX : 더 생각해볼 필요가 있을 때 포맷팅 Vertical Formatting ( 파일 라인이 길어지는 경우 ) : 한 파일에 코드를 다 넣지 말고, 개념에 맞게 파일을..

[클린코드 작성하기] 네이밍

Convention 대표적으로 4가지. 명명된 컨벤션 이름만 봐도 알 수있음. snake_case : 언더바 형태로 띄워쓰기 표기 camelCase : 낙타의 혹같이 띄워쓰기 표기 PascalCase : 첫글자부터 대문자. 대부분의 프로그래밍 언어에서 클래스를 네이밍할 때 사용 kebab-case : HTML Element를 표현할 때 사용 변수와 상수 : 동사, 형용사 형태 user_data = ... #명사 is_valid = .. # 형용사 함수와 메서드 : 동사 , 형용사 구문 형태로 지음 send_data() / input_is_valid() 클래스 : 명사, PascalCase class Client: ... class RequestBody: Tips ( 명시적 ! ) 1. 구체적이고 명시적으..

제너레이터(Generator)

강의에서 메모리 아낄 때 좋다길레, 직접 찍어봤다. import psutil def memory_usage(message: str = 'debug'): # current process RAM usage p = psutil.Process() rss = p.memory_info().rss / 2 ** 20 # Bytes to MB print(f"[{message}] memory usage: {rss: 10.9f} MB") 인터넷에 파이썬 메모리 추적할 수있는 함수를 하나 따오고 Generator로 for문을 돌렸을 때 13.511MB -> 13.53MB으로 증가하며 메모리에 적재됨을 볼 수있고, (0.02MB사용) list로 돌렸을 때 , 0... ? 왜 안늘지. 다시. 이번에 for문의 range를 100..

PEP8 참고 링크

문제풀이 할때야 괜찮겠지만 협업 때 파이썬 코드 작성 요령 https://codechacha.com/ko/pythonic-and-pep8/ Pythonic은 무엇인가? (PEP 8 정리) Pythonic은 파이썬답게 코드를 짜는 것을 말합니다. 파이썬다운 코드는 파이썬의 기능들을 잘 이용하여 작성된 코드이고, 그렇기 때문에 가독성이 좋은 코드를 말할 것입니다. 파이썬 커뮤니티의 codechacha.com ** Reference PEP 8 -- Style Guide for Python Code The official home of the Python Programming Language www.python.org

[Python] 상속시 super().__init__ 사용

알고리즘 문제로 문법을 익히다보니 클래스와 상속등을 이미 배웠지만, 코드상에서 익숙하지 않았다. 요즘 LSTM등 시계열 처리에 도움이 되는 모델들을 보고있는데, 코드상에서 super()를 심심치않게 볼 수 있다. [Python] Tip - super()로 부모클래스를 초기화 super를 사용하지 않고 자식클래스에서 부모클래스를 초기화 할 때 다음과 같은 방법을 사용합니다. class Parent: def __init__(self,num): print('parent', num) class Child(Parent):ㄷ def __init__(self): Pa.. brownbears.tistory.com C++에서도 있었던 문제였지만, 다이아몬드 상속의 경우 Child의 instance를 만들때 super를 ..

[Python] *args , **kwargs에 대해서

파이썬 코드읽는데, *args, **kwargs가 나와서 이해가 안됐다. 아래 사이트를 보고 대략적으로 적었습니다. [나름 중급 파이썬1] *args와 **kwargs 항상 헷갈리는 두 가지 다시 한번 살펴보자 | 이 글은 파이썬의 문법을 모르면 이해하기 어렵습니다. python의 함수 작성 요령, 인자(argument)와 파라미터를 이해한다면 도움이 되는 내용입니다. 아 brunch.co.kr 결국 요약하자면, python에서의 *은 포인터 이런게 아니고, 몇개의 인자가 들어올지 모를 때. *args 를 쓰면 여러개를 인자로 넘길 수 있고, 이를 tuple로 활용하게 되는것이고, **kwargs 도 여러개를 인자로 넘길 수 있으나, 이를 dictionary처럼 활용 할 수있다. 또한 parameter들..