Python Coding Convention
PEP8์ด ๊ถ๊ธํด์ ธ์ ์ฐพ์๋ณด๋ค๊ฐ ๊ธ ์ ๋ฆฌ
References: [์ฑ ] ํ์ด์ฌ ์ฝ๋ฉ์ ๊ธฐ์
PEP8 ์ด๋?
Python Enhancement Proposal 8 (PEP8)
Python code๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํ ์ง ์๋ ค์ฃผ๋ ์คํ์ผ ๊ฐ์ด๋
์ฝ๋ฉ์ ํ ๋ ํน์ ํ์์ผ๋ก ์์ฑํ์๋ ์ฝ์
์ผ๊ด์ฑ ์๋ ์คํ์ผ์ ์ฌ์ฉํ๋ฉด ์ ์ง๋ณด์๊ฐ ๋์ฑ ์ฌ์์ง๊ณ ๊ฐ๋ ์ฑ๋ ๋์์ง๋ค!
python.org ์ ์์ธํ ์ ๋ฆฌ๋์ด ์์!
PEP8 ์ค ๋ฐ๋์ ๋ฐ๋ผํ์ผ ํ๋ ๋ช ๊ฐ์ง ๊ท์น
1. Whitespace
Python์์ whitespace๋ ๋ฌธ๋ฒ์ ์ผ๋ก ์๋ฏธ๊ฐ ์์
ํ์ด์ฌ ํ๋ก๊ทธ๋๋จธ๋ ํนํ ์ฝ๋์ ๋ช ๋ฃ์ฑ ๋๋ฌธ์ whitespace์ ์ํฅ์ ๋ฏผ๊ฐํ๋ค!
Tab์ด ์๋ Space๋ก ๋ค์ฌ์ด๋ค
๋ฌธ๋ฒ์ ์ผ๋ก ์๋ฏธ ์๋ ๋ค์ฌ์ฐ๊ธฐ๋ ๊ฐ ์์ค๋ง๋ค space 4๊ฐ๋ฅผ ์ฌ์ฉํ๋ค
ํ ์ค์ ๋ฌธ์ ๊ธธ์ด๊ฐ 79์ ์ดํ์ฌ์ผ ํ๋ค
ํํ์์ด ๊ธธ์ด์ ๋ค์ ์ค๋ก ์ด์ด์ง๋ฉด ์ผ๋ฐ์ ์ธ ๋ค์ฌ์ฐ๊ธฐ ์์ค์ ์ถ๊ฐ๋ก Space 4๊ฐ๋ฅผ ์ฌ์ฉํ๋ค
ํ์ผ์์
ํจ์
์class
๋ ๋น ์ค ๋ ๊ฐ๋ก ๊ตฌ๋ถํด์ผ ํ๋คClass์์ method๋ ๋น ์ค ํ๋๋ก ๊ตฌ๋ถํด์ผ ํ๋ค
List index
,ํจ์ ํธ์ถ
,keyword ์ธ์ ํ ๋น
์๋ space๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค
2. Naming Conventions
PEP 8 ์ ์ธ์ด์ ๋ถ๋ถ๋ณ๋ก ๋ ์์ ์ธ ๋ช ๋ช ๊ท์น์ ์ ์ํ๋ค
์ฝ๋๋ฅผ ์ฝ์ ๋ ๊ฐ ์ด๋ฆ์ ๋์ํ๋ ํ์ ์ ๊ตฌ๋ณํ๊ธฐ ์ฝ๊ฒ ํด์ค๋ค!
ํจ์
,๋ณ์
,์์ฑ
์ lowercase_unserscore ํ์์ ๋ฐ๋ฅธ๋คprotected
instance ์์ฑ์ _leading_underscore ํ์์ ๋ฐ๋ฅธ๋คprivate
instance ์์ฑ์ __double_leading_underscore ํ์์ ๋ฐ๋ฅธ๋คClass์ Exception์ CaplitalizeWord ํ์์ ๋ฐ๋ฅธ๋ค
Module ์์ค์ tkdtnsms ALL_CAPS ํ์์ ๋ฐ๋ฅธ๋ค
Class instance
์ method์์ ์ฒซ ๋ฒ์งธ parameter (ํด๋น ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ) ์ ์ด๋ฆ์ self๋ก ์ง์ ํ๋คClass method
์์๋ ์ฒซ ๋ฒ์งธ parameter (ํด๋น class๋ฅผ ์ฐธ์กฐ)์ ์ด๋ฆ์ cls ๋ก ์ง์ ํ๋ค
3. ํํ์๊ณผ ๋ฌธ์ฅ
ํ์ด์ฌ์ ๊ณ๋ช (The Zen of Python)์๋ "์ด๋ค ์ผ์ ํ๋ ํ์คํ ๋ฐฉ๋ฒ์ด (๋ ์ ์์ผ๋ฉด ํ๋๋ง) ์์ด์ผ ํ๋ค" ๋ ํํ์ด ์๋ค
PEP 8์ ํํ์๊ณผ ๋ฌธ์ฅ์ ๋ณธ๋ณด๊ธฐ๋ก ์ด ์คํ์ผ์ ์ ๋ฆฌํ๊ณ ์๋ค
๊ธ์ ํํ์์ ๋ถ์ (
if not a is b
) ๋์ ์ ์ธ๋ผ์ธ ๋ถ์ (if a is not b
) ์ ์ฌ์ฉํ๋ค๊ธธ์ด๋ฅผ ํ์ธ (
if len(somelist) == 0
) ํ์ฌ ๋น ๊ฐ([]
or''
) ์ ํ์ธํ์ง ์๋๋คif not somelist
๋ฅผ ์ฌ์ฉํ๊ณ , ๋น ๊ฐ์ ์์์ ์ผ๋ก False๊ฐ ๋๋ค๊ณ ๊ฐ์ ํ๋ค๋น์ด์์ง ์์ ๊ฐ์๋ ๊ฐ์ ๋ฐฉ์์ด ์ ์ฉ๋๋ค!
๋น์ด์์ง ์์ ๊ฐ์
if somelist
๋ฌธ์ด ์์์ ์ผ๋ก True ๊ฐ ๋๋ค
ํ ์ค๋ก ๋
if ๋ฌธ
,for์ while loop
,except ๋ณตํฉ๋ฌธ
์ ์ฐ์ง ์๋๋ค์ด๋ฐ ๋ฌธ์ฅ์ ์ฌ๋ฌ ์ค๋ก ๋๋์ด์ ๋ช ๋ฃํ๊ฒ ์์ฑํ๊ธฐ!
ํญ์ ํ์ผ์ ๋งจ ์์ import๋ฌธ์ ๋๋๋ค
module์ import ํ ๋๋ ํญ์ module์ ์ ๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ฉฐ ํ์ฌ ๋ชจ๋์ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ ๊ฒฝ๋ก๋ก ๋ ์ด๋ฆ์ ์ฌ์ฉํ์ง ์๋๋ค
ex)
import foo
๊ฐ ์๋๋ผfrom bar import foo
๋ก ์ฌ์ฉํ๊ธฐ!
์๋์ ์ธ import๋ฅผ ํด์ผ ํ๋ค๋ฉด ๋ช ์์ ์ธ ๊ตฌ๋ฌธ์ ์จ์
from . import foo
๋ผ๊ณ ํ๋คimport๋
ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋
,third party ๋ชจ๋
,์์ ์ด ๋ง๋ ๋ชจ๋
์์ผ๋ก ๊ตฌ๋ถํด์ผ ํ๋ค๊ฐ๊ฐ์ ํ์ section์์๋ alphabetic order๋ก import ํ๋ค
PEP8์ ์ ๋ฐ๋ฅด๊ณ ์๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ
pylint์ PEP8 ์ค์นํ์ฌ ์ฌ์ฉํ๊ธฐ!
1. pylint
2. PEP8
Last updated