WeSTUDY | 3주차 PEP 8 Guide

7913 단어 pythonwestudypython

목표 : 구글링의 기초(?)가 되는 파이썬관련 영문용어들과 익숙해지는 시간을 갖는다.


PEP 8 이란 ?

파이썬을 이용해 코딩하는 사람들을 위해 파이썬 창시자 귀도 반 로섬이 배포한 파이썬 스타일 가이드다. 코드를 일관되게 작성해 가독성을 높이고 개발자간 상호이해를 돕도록 코딩 스타일 표준을 제시한다.

(영어 -> 한국어) 번역 과정에서 임의로 번역한 부분/오류 있음.
PEP 원문(click)


코드 레이아웃

- 들여쓰기(Indentation)로 인자 (argument) 구별하기

들여쓰기는 4개의 공백을 사용한다.
스페이스바를 4번 누르거나 tab을 누른다.

인자가 다른 요소와 구별되도록 들여쓰기를 사용함.
-> print와 구별되도록 4칸의 공백을 넣어줌

def long_function_name(
	var_one, var_two, var_three,
        var_four) :
    print(var_one)

- 최대 문장 길이

모든 행의 길이를 최대 79자로 제한한다. 에디터창의 너비를 제한하면 여러 개의 파일을 나란히 열 수 있고 인접한 열(column)의 두 버전을 제공하는 코드 리뷰도구를 사용할 때 편리하다.

- 괄호 (parentheses)를 사용해 줄바꾸기

표현식을 ()로 감싸서 여러줄로 나눌 수 있음. 연속되는 행은 \을 사용해 표시할 수 있음.

with open('/path/to/some/file/you/want/to/read') as file_1, \
     open('/path/to/some/file/being/written', 'w') as file_2:
    file_2.write(file_1.read())

- 소스파일 인코딩

파이썬 배포 파일은 항상 UTF-8 혹은 ASC를 사용해야 함.

- import

다른 행에 입력해야하고, 항상 파일의 최상단에 위치해야 함.

import os
import sys 

import의 순서
1. 표준 라이브러리
2. 관련 써드파티 라이브러리
3. 로컬 어플리케이션/라이브러리

- 모듈 레벨 Dunder Names

dunder : names with two leading and two trailing underscores
예 ) __all__, __author__, __version__

던더 네임은 소스코드에 포함된 문서(docstring)의 뒤에, 모든 import선언문 (from __future__제외)의 앞에 위치해야함.

//docstring
"""This is the example module.
This module does stuff.
"""
from __future__ import barry_as_FLUFL
//dunder names
__all__ = ['a', 'b', 'c']
__version__ = '0.1'
__author__ = 'Cardinal Biggles'
//import 선언문
import os
import sys

- 작은따옴표와 큰따옴포

파이썬에서 ''""는 같음. 아무거나 사용해도 좋다!!
문자열에 따옴표를 포함하고 있는 경우엔 \를 사용하지 않기 위해 다른 따옴표를 사용하는게 좋음.

- 공백 (Whitespace)

공백을 표현하는 '', \n 같은 문자들을 Whitespace라고 한다.
필요없는 공백의 사용은 자제한다.

괄호안의 공백

//Wrong! 
spam( ham[ 1 ], {eggs: 2 } )

, ; : 의 앞에 위치한 공백

//Wrong!!
if x == 4 : print x , y ; x , y = y , x

!공백은 한 칸을 초과해서 사용하지 않는다.!


Trailing commas

일반적으로 선택사항이나 튜플을 만들땐 필수다. ()로 글자를 감싸 더 명확하게 표현할 수 있음.


주석 (Comments)

코드와 상응하지 않는 주석은 없느니만 못하다. 코드를 바꿀 땐 항상 주석을 업데이트하는 것을 최우선으로 한다. 자신의 코드가 한국어를 못하는 사람이 읽을 확률이 없다고 120% 확신하지 않는 이상 영어로 주석을 작성하라 (ㅋㅋ)

- Block Comments

2줄 이상의 주석은 해당하는 코드와 동일한 수준으로 들여쓰기를 사용하도록 한다. 각 줄의 Block comments는 #와 한 칸의 공백으로 시작한다.

- Inline Comments

코드와 같은 줄에 있는 주석으로 드물게 사용한다.
#와 한 칸의 공백으로 시작하며 코드와 적어도 두칸 이상의 공백을 두고 적는다.

x = x + 1                     # Compensate for border

- Docstring

공용 모듈, 함수, 클래스, 메서드를 사용할 땐 docstring을 쓰는 것이 좋다. 그렇지 않은 경우에 docstring이 필수는 아니지만 메서드가 어떤 기능을 하는 지 주석을 쓰도록 한다. 이 주석은 def 이후에 작성되야 한다.

여러 줄의 docstring의 끝에 붙는 """는 단독으로 써야한다.
한 줄의 docstring의 경우엔 """을 같은 줄에 적는다.

"""Return a foobang
/n
Optional plotz says to frobnicate the bizbaz first.
"""

명명 규칙 (Naming Conventions)

의무적인 규칙은 정해진 것이 없으며 사용자의 스타일대로 사용한다.
l o i 를 변수이름으로 사용할 경우에 숫자 01과 구별하기 어렵다.

  • 패키지와 모듈 이름

    모듈은 짧고 소문자로 된 이름이어야 한다. _을 사용할 수 있다. 패키지 또한 짧고 소문자로 된 이름이어야 하지만 _의 사용은 지양한다.

  • 클래스 이름

    클래스 이름은 보통 CapWords 규칙을 따른다. CapWords 규칙은 단어의 앞글자를 대문자로 시작하는 규칙이다.

  • 함수와 변수 이름

    함수 이름은 소문자여야 하고 단어는 _를 사용해 구분짓는다. 변수이름은 관습적으로 함수와 같은 규칙을 사용한다.

  • 상수 (Constants)

    상수는 대문자와 _을 사용해 단어를 구분짓는다.
    ex ) MAX_OVERFLOW , TOTAL


후기 : 모든 용어를 직역해서 사용하는 것이 아니라 뜻을 이해하는 데 시간이 걸리지만 용어자체에 익숙해지면 바로 이해할 수 있을 것 같다.
구글링을 통해 원하는 정보를 찾는 것도 어렵고 대부분의 자료가 영어로 작성되어 있어 한국어로 번역한 후 전문용어로 연결짓는게 시간이 걸리기 때문에 연습이 필요해보인다.

좋은 웹페이지 즐겨찾기