Python Coding Convention
Last updated
Was this helpful?
Last updated
Was this helpful?
PEP8์ด ๊ถ๊ธํด์ ธ์ ์ฐพ์๋ณด๋ค๊ฐ ๊ธ ์ ๋ฆฌ
References: [์ฑ ] ํ์ด์ฌ ์ฝ๋ฉ์ ๊ธฐ์
Python Enhancement Proposal 8 (PEP8)
Python code๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํ ์ง ์๋ ค์ฃผ๋ ์คํ์ผ ๊ฐ์ด๋
์ฝ๋ฉ์ ํ ๋ ํน์ ํ์์ผ๋ก ์์ฑํ์๋ ์ฝ์
์ผ๊ด์ฑ ์๋ ์คํ์ผ์ ์ฌ์ฉํ๋ฉด ์ ์ง๋ณด์๊ฐ ๋์ฑ ์ฌ์์ง๊ณ ๊ฐ๋ ์ฑ๋ ๋์์ง๋ค!
์ ์์ธํ ์ ๋ฆฌ๋์ด ์์!
Python์์ whitespace๋ ๋ฌธ๋ฒ์ ์ผ๋ก ์๋ฏธ๊ฐ ์์
ํ์ด์ฌ ํ๋ก๊ทธ๋๋จธ๋ ํนํ ์ฝ๋์ ๋ช ๋ฃ์ฑ ๋๋ฌธ์ whitespace์ ์ํฅ์ ๋ฏผ๊ฐํ๋ค!
Tab์ด ์๋ Space๋ก ๋ค์ฌ์ด๋ค
๋ฌธ๋ฒ์ ์ผ๋ก ์๋ฏธ ์๋ ๋ค์ฌ์ฐ๊ธฐ๋ ๊ฐ ์์ค๋ง๋ค space 4๊ฐ๋ฅผ ์ฌ์ฉํ๋ค
ํ ์ค์ ๋ฌธ์ ๊ธธ์ด๊ฐ 79์ ์ดํ์ฌ์ผ ํ๋ค
ํํ์์ด ๊ธธ์ด์ ๋ค์ ์ค๋ก ์ด์ด์ง๋ฉด ์ผ๋ฐ์ ์ธ ๋ค์ฌ์ฐ๊ธฐ ์์ค์ ์ถ๊ฐ๋ก Space 4๊ฐ๋ฅผ ์ฌ์ฉํ๋ค
ํ์ผ์์ ํจ์
์ class
๋ ๋น ์ค ๋ ๊ฐ๋ก ๊ตฌ๋ถํด์ผ ํ๋ค
Class์์ method๋ ๋น ์ค ํ๋๋ก ๊ตฌ๋ถํด์ผ ํ๋ค
List index
, ํจ์ ํธ์ถ
, keyword ์ธ์ ํ ๋น
์๋ space๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค
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 ๋ก ์ง์ ํ๋ค
ํ์ด์ฌ์ ๊ณ๋ช (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 ํ๋ค
pylint์ PEP8 ์ค์นํ์ฌ ์ฌ์ฉํ๊ธฐ!