Python ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ import
ํ๊ฒ ๋ฉ๋๋ค.
ํนํ ์ฌ๋ฌ ์ฌ๋์ด ํจ๊ป ์์
ํ๋ ๊ฒฝ์ฐ, ์ผ๊ด๋ import
๊ท์น์ ๋ฐ๋ฅด๋ฉด ์ฝ๋์ ๊ฐ๋
์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ๋์์ง๊ณ , ๋ถํ์ํ git ๋ณ๊ฒฝ ์ฌํญ๋ ์ค์ผ ์ ์์ต๋๋ค.
์ด ๊ธ์์๋ Python ์คํ์ผ ๊ฐ์ด๋์ธ PEP 8์์ ๊ถ์ฅํ๋ import
๊ท์น์ ์ดํด๋ณด๊ณ , ์ด๋ฅผ ์๋์ผ๋ก ์ ๋ฆฌํด ์ฃผ๋ ๋๊ตฌ์ธ isort
์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
Python Import ์์ Best Practice
PEP 8์์๋ import ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ฆฌํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
# 1. Standard Library(ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
import os
import sys
import json
# 2. Third-party Library(์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
import boto3
import requests
import pandas as pd
# 3. Local Modules(๋ก์ปฌ ๋ชจ๋)
from my_project.utils import helper_function
from my_project.services import S3Inspector
# 4. ์๋ชป๋ import ์์
from .utils import helper_function # โ : ์๋ ๊ฒฝ๋ก๊ฐ ์๋ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
from os, sys # โ : 1์ค์ 1๊ฐ์ ๋ชจ๋๋ง import ํด์ผ ํฉ๋๋ค.
from math import * # โ : import์์ ์์ผ๋์นด๋๋ ์ฌ์ฉํ์ง ์์ต๋๋ค.
Standard Library(ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ) Import
Python์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด์ฅ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๊ฐ์ฅ ์ฒ์์ import ํฉ๋๋ค.
์๋ฅผ๋ค์ด os, sys, json๊ณผ ๊ฐ์ ๋ชจ๋์ด ํด๋น๋ฉ๋๋ค.Third-party Library(์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ) Import
pip ๋ฑ์ ํตํด ์ค์นํ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋๋ฒ์งธ๋ก import ํฉ๋๋ค.
์๋ฅผ ๋ค์ด boto3, requests, pandas๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํด๋น๋ฉ๋๋ค.Local Modules(๋ก์ปฌ ๋ชจ๋) Import
ํ๋ก์ ํธ ๋ด๋ถ์์ ์์ฑํ ๋ชจ๋์ด๋ ํจํค์ง๋ฅผ ๋ง์ง๋ง์ import ํฉ๋๋ค.์ถ๊ฐ Best Practices
- ์๋ ๊ฒฝ๋ก๋ณด๋ค ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- 1์ค์ 1๊ฐ์ ๋ชจ๋๋ง import ํด์ผ ํฉ๋๋ค.
- import์์ ์์ผ๋ ์นด๋๋ ์ฌ์ฉํ์ง ์์ต๋๋ค.
- import ๊ทธ๋ฃน ๋ด์์๋ ์ํ๋ฒณ์ผ๋ก ์ ๋ ฌํ๊ณ ๊ฐ ๊ทธ๋ฃน ๊ฐ์๋ ๋น ์ค์ ์ถ๊ฐํด ์๊ฐ์ ์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค.
isort ์ฌ์ฉ๋ฒ
isort๋ Python ์ฝ๋์ import ๋ฌธ์ ์๋์ผ๋ก ์ ๋ ฌํด์ฃผ๋ ๋๊ตฌ๋ก PEP 8 ์คํ์ผ ๊ฐ์ด๋์ ๋ฐ๋ผ import ๋ฌธ์ ์ํ๋ฒณ ์์๋ก ์ ๋ ฌํ๊ณ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์๋ ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ก์ปฌ ๋ชจ๋์ ๊ตฌ๋ถํฉ๋๋ค.
isort ์ค์น ๋ฐฉ๋ฒ
# isort ์ค์น pip install isort pip3 install isort brew install isort
isort ์ฌ์ฉ ๋ฐฉ๋ฒ
# ํน์ ํ์ผ ์ ๋ ฌ isort mypythonfile.py isort mypythonfile_1.py mypythonfile2.py # ๋๋ ํ ๋ฆฌ ๋ด ๋ชจ๋ Python ํ์ผ ์ ๋ ฌ isort . # ์์ ์์ด ์ ๋ ฌ ํ์ธ isort mypythonfile.py --check # ๋ณ๊ฒฝ ์ฌํญ ํ์ธ isort mypythonfile.py --diff
'๐ Programming > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] datetime ๋ชจ๋ ์ ๋ฆฌ (1) | 2023.04.21 |
---|---|
[Python] collections Counter ์ฌ์ฉ๋ฒ (0) | 2021.09.06 |
[Python] ๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ (0) | 2021.08.21 |