728x90
들여쓰기
- 들여쓰기는 4개의 공백을 사용
# 올바른 예
# 괄호 기호에 맞춰 정렬
foo = long_function_name(var_one, var_two,
var_three, var_four)
# arguments를 구별하기 위해 들여쓰기를 추가
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
# 다음과 같은 들여쓰기는 Hanging indent라고 부르며 level이 추가되어야 함
foo = long_function_name(
var_one, var_two,
var_three, var_four)
# 잘못된 예
# vertical로 정렬이 안되어있으면 첫째 줄에 arguments를 작성하면 안됨
foo = long_function_name(var_one, var_two,
var_three, var_four)
# 들여쓰기를 구분할 수 없으므로 추가 들여쓰기가 필요
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
- if문을 작성할 경우 다음과 같은 style로 작성할 수 있다.
# 추가 들여쓰기가 없음
if (this_is_one_thing and
that_is_another_thing):
do_something()
# if 문과 구별할 수 있는 주석을 추가
if (this_is_one_thing and
that_is_another_thing):
# <주석>
do_something()
# if문이 연속되는 다음 줄에 추가 들여쓰기 추가
if (this_is_one_thing
or that_is_another_thing):
do_something()
- 괄호의 경우 다음과 같이 정렬될 수 있다.
# 괄호는 마지막 줄의 첫 번째 문자로 정렬
my_list = [
1, 2, 3,
4, 5, 6,
]
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
# 들여쓰기없이 줄의 첫 번째 문자로 정렬될 수 있음
my_list = [
1, 2, 3,
4, 5, 6,
]
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
탭 또는 공백
python은 들여쓰기를 위해 탭과 공백을 섞어서 사용하는 것을 허용하지 않는다.
최대 Line 길이
- 모든 줄은 최대 79자로 제한
- 긴 줄은 괄호를 감싸서 사용하는 것을 선호
- 괄호로 감싼 긴 줄은 여러 줄로 나눌 수 있음
- 다음과 같이 backslash를 사용할 수 있음
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())
- assert문을 사용하는 경우도 있음
연산자 전후의 줄 바꿈
# 잘못된 예
# 연산자가 피연산자로부터 멀리 떨어져있음
income = (gross_wages +
taxable_interest +
(dividends - qualified_dividends) -
ira_deduction -
student_loan_interest)
# 올바른 예
# 연산자와 피연산자를 matching하기 쉬움
income = (gross_wages
+ taxable_interest
+ (dividends - qualified_dividends)
- ira_deduction
- student_loan_interest)
Blank Line
- 함수와 클래스는 두 개의 빈 줄로 구분
- 클래스 내의 메서드는 빈 줄 하나로 구분
Encoding
- 항상 UTF-8을 사용
- 비 UTF-8은 테스트 목적으로만 사용
- 표준 라이브러리의 모든 식별자는 ASCII 전용 식별자, 영어 단어를 사용
Import
- import는 일반적으로 별도의 줄을 사용
# 올바른 예
import os
import sys
from subprocess import Popen, PIPE
# 잘못된 예
import sys, os
- import는 항상 파일 상단, 모듈 주석 및 docstring 바로 뒤, 모듈 전역, 상수 앞에 배치
- 표준 라이브러리 > third party > local application/library 순서로 그룹화
- 절대 import가 권장됨
# absolute import
import mypkg.sibling
from mypkg import sibling
from mypkg.sibling import example
# relative import
# absolute import를 사용할 때 너무 경로가 복잡할때 사용
from . import sibling
from .sibling import example
- "from <module> import *"와 같은 와일드카드 import는 지양
Dunder Name
- __all__, __author__, __version__ 등과 같은 "dunders"는 __future__ import를 제외한 모든 import문 앞에 위치
from __future__ import barry_as_FLUFL
__all__ = ['a', 'b', 'c']
__version__ = '0.1'
__author__ = 'Cardinal Biggles'
import os
import sys
[reference]
728x90
'Python' 카테고리의 다른 글
[PEP8] Comments (0) | 2022.02.26 |
---|---|
[PEP8] When to use trailing commas (0) | 2022.02.25 |
[PEP8] Whitespace in Expressions and Statements (0) | 2022.02.07 |
[PEP8] String Quotes (0) | 2022.02.07 |
한 번 사용하고 버려지는 Iterator 객체 (0) | 2021.06.13 |