Ssa!
파이썬 스타일 가이드! PEP 8 본문
오늘 파이썬 기초를 배웠다. 배우기 전에 튜터님이 간단한 스타일 가이드를 설명해줬는데 더 구체적으로 알고 있으면 좋을 것 같아 출처에서 글을 빌렸다! 앞으로 협업할 때 참고하여 쓰자!
출처: https://ultrakain.gitbooks.io/python/content/chapter1/coding-style-pep8.html
코딩 스타일 : PEP8 · Python
ultrakain.gitbooks.io
https://ultrakain.gitbooks.io/python/content/chapter1/convention.html
코딩 스타일 : 컨벤션 · Python
ultrakain.gitbooks.io
Code lay-out
- 들여쓰기는 공백 4칸 을 권장한다.
- 한 줄은 최대 79자까지
- 최상위(top-level) 함수와 클래스 정의는 2줄씩 띄어쓰자
- 클래스 내의 메소드 정의는 1줄씩 띄어쓴다!
Whitespace in Expressions and Statements
나 자신은 불필요한 공백을 가장 많이 쓰는 것 같다. 조심하자!!!
- 다음과 같은 곳의 불필요한 공백은 피하자
- 대괄호([ ])와 소괄호(( ))안
- 쉼표(,), 쌍점(:)과 쌍반점(;) 앞
- 키워드 인자(keyword argument)와 인자의 기본값(default parameter value)의 =는 붙여쓴다!
Comments
- 코드와 모순되는 주석은 없느니만 못하다. 항상 코드에 따라 갱신하자!.
- 불필요한 주석은 달지 말자!.
- 한 줄 주석은 신중히 달자!.
Naming Conventions
- 변수명에서 _(밑줄)은 위치에 따라 다음과 같은 의미가 있다.
- _single_leading_underscore : 내부적으로 사용되는 변수 를 말한다.
_my_var = 10- single_trailing_underscore_ : 파이썬 기본 키워드와 충돌을 피하려고 사용한다.
my_var_ = 10- __double_leading_underscore : 클래스 속성으로 사용 되면 그 이름을 변경한다. (ex. FooBar에 정의된 __boo는 _FooBar__boo로 바뀐다.)
__my_var = 100- __double_leading_and_trailing_underscore__ :마술을 부리는 용도로 사용되거나 사용자가 조정할 수 있는 네임스페이스 안의 속성을 뜻한다. 이런 이름을 새로 만들지 마시고 오직 문서대로만 사용하라!
__my_var__ = 100 - 소문자 L, 대문자 O, 대문자 I는 변수명으로 사용하지 마세요. 어떤 폰트에서는가독성이 굉장히 안 좋다.
- 모듈(Module) 명은 짧은 소문자로 구성 되며 필요하다면 밑줄로 나눈다
- 모듈은 파이썬 파일(.py)에 대응하기 때문에 파일 시스템의 영향을 받으니 주의하라!.
- 클래스 명은 카멜케이스(CamelCase)로 작성한다.
튜터님이 말하기를 카멜케이스보다는 파스칼을 쓰는게 좋다고 한다. 나도 그게 더 가독성이 좋아 보인다
- 내부적으로 쓰이면 밑줄을 앞에 붙인다
- 예외(Exception) 는 실제로 에러인 경우엔 "Error"를 뒤에 붙인다
- 함수명은 소문자로 구성하되 필요하면 밑줄로 나눈다.
- 대소문자 혼용은 이미 흔하게 사용되는 부분에 대해서만 하위호환을 위해 허용한다
- 인스턴스 메소드의 첫 번째 인자 는 언제나 self이다
- 클래스 메소드의 첫 번째 인자는 언제나 cls이다
- 메소드명은 함수명과 같으나 비공개(non-public) 메소드, 혹은 변수면 밑줄을 앞에 붙인다
- 서브 클래스(sub-class)의 이름 충돌을 막기 위해서는 밑줄 2개를 앞에 붙인다
- 상수(Constant) 는 모듈 단위에서만 정의하며 모두 대문자에 필요하다면 밑줄 로 나눈다

Programming Recommendations
- 코드는 될 수 있으면 어떤 구현(PyPy, Jython, IronPython등)에서도 불이익이 없게끔 작성되어야 한다!
- None을 비교할때는is나is not만 사용한다
- string모듈보다는string메소드를 사용한다. 메소드는 모듈보다 더 빠르고, 유니코드 문자열에 대해 같은 API를 공유한다
- 접두사나 접미사를 검사할 때는startswith()와endwith()를 사용한다
- 객체의 타입을 비교할 때는isinstance()를 사용한다
- 빈 시퀀스(문자열, 리스트(list), 튜플(tuple))는조건문에서 거짓(false)이다.
- 불린형(boolean)의 값을조건문에서==를 통해 비교하지 마라!
'언어 > python' 카테고리의 다른 글
| 파이썬 계산기 튜터님이 하신 것!!! (0) | 2022.09.07 |
|---|---|
| 파이썬 계산기 과제 (0) | 2022.09.07 |
| 파이썬 실강 3일차! (0) | 2022.09.07 |
| 파이썬 실강 2일차! (0) | 2022.09.06 |
| 파이썬 실강 1일차! (0) | 2022.09.05 |