[python] 파이썬 클린 μ½”λ“œ μž‘μ„± κΏ€νŒ 8κ°€μ§€ : 더 κΉ”λ”ν•˜κ³  가독성 높은 μ½”λ“œ μž‘μ„±ν•˜κΈ°!

2024. 7. 11. 20:50Β·πŸ’» Programming/Python
λ°˜μ‘ν˜•

μ˜€λŠ˜μ€ 파이썬 κ°œλ°œμ„ ν•  λ•Œ 클린 μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄λ €κ³  ν•΄μš”. 클린 μ½”λ“œλŠ” 가독성이 μ’‹κ³  μœ μ§€λ³΄μˆ˜κ°€ μ‰¬μš΄ μ½”λ“œλ₯Ό μ˜λ―Έν•œλ‹΅λ‹ˆλ‹€. μ§€κΈˆλΆ€ν„° λͺ‡ κ°€μ§€ μœ μš©ν•œ νŒμ„ μ†Œκ°œν• κ²Œμš”! 😊


1. λͺ…ν™•ν•˜κ³  의미 μžˆλŠ” λ³€μˆ˜λͺ… μ‚¬μš©ν•˜κΈ°

λ³€μˆ˜λͺ…은 μ½”λ“œμ˜ 가독성을 크게 μ’Œμš°ν•΄μš”. λ³€μˆ˜λͺ…은 κ·Έ λͺ©μ μ„ λΆ„λͺ…ν•˜κ²Œ λ‚˜νƒ€λ‚΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, aλ³΄λ‹€λŠ” age, nλ³΄λ‹€λŠ” number_of_items와 같이 ꡬ체적인 이름을 μ‚¬μš©ν•΄ λ³΄μ„Έμš”.

# λ‚˜μœ 예
a = 10
b = 20

# 쒋은 예
width = 10
height = 20

 

 

2. ν•¨μˆ˜λŠ” ν•˜λ‚˜μ˜ μž‘μ—…λ§Œ μˆ˜ν–‰ν•˜κ²Œ ν•˜κΈ°

ν•˜λ‚˜μ˜ ν•¨μˆ˜κ°€ μ—¬λŸ¬ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ©΄ μ΄ν•΄ν•˜κΈ° μ–΄λ ΅κ³ , μœ μ§€λ³΄μˆ˜κ°€ νž˜λ“€μ–΄μ Έμš”. ν•¨μˆ˜λŠ” κ°€λŠ₯ν•œ ν•œ ν•˜λ‚˜μ˜ μž‘μ—…λ§Œ μˆ˜ν–‰ν•˜λ„λ‘ μž‘μ„±ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

# λ‚˜μœ 예
def process_data(data):
    clean_data = clean(data)
    transformed_data = transform(clean_data)
    save_to_database(transformed_data)

# 쒋은 예
def clean_data(data):
    # 데이터 정리 μ½”λ“œ
    pass

def transform_data(clean_data):
    # 데이터 λ³€ν™˜ μ½”λ“œ
    pass

def save_data_to_database(transformed_data):
    # 데이터 μ €μž₯ μ½”λ“œ
    pass

 

 

3. μ£Όμ„μœΌλ‘œ μ½”λ“œ μ„€λͺ…ν•˜κΈ°

주석은 μ½”λ“œλ₯Ό μ„€λͺ…ν•˜λŠ” μ€‘μš”ν•œ λ„κ΅¬μ—μš”. 주석을 적절히 μ‚¬μš©ν•˜λ©΄ λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜λŠ” 데 큰 도움이 λ©λ‹ˆλ‹€. λ‹€λ§Œ, λ„ˆλ¬΄ κ³Όλ„ν•œ 주석은 ν”Όν•˜λŠ” 것이 μ’‹μ•„μš”. μ½”λ“œλŠ” μžμ²΄μ μœΌλ‘œλ„ 이해 κ°€λŠ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€.

# λ‚˜μœ 예
a = 10  # a에 10을 ν• λ‹Ή

# 쒋은 예
# μ‚¬μš©μž μž…λ ₯ λ‚˜μ΄λ₯Ό μ €μž₯
age = 10

 

 

4. μΌκ΄€λœ μ½”λ”© μŠ€νƒ€μΌ μœ μ§€ν•˜κΈ°

μΌκ΄€λœ μ½”λ”© μŠ€νƒ€μΌμ„ μœ μ§€ν•˜λŠ” 것은 맀우 μ€‘μš”ν•΄μš”. PEP 8 κ°€μ΄λ“œλΌμΈμ„ λ”°λ₯΄λŠ” 것이 μΌλ°˜μ μž…λ‹ˆλ‹€. μ½”λ”© μŠ€νƒ€μΌμ„ ν†΅μΌν•˜λ©΄ μ½”λ“œμ˜ 가독성이 크게 ν–₯μƒλΌμš”.

# λ‚˜μœ 예
def myFunction(): print("Hello")

# 쒋은 예
def my_function():
    print("Hello")

 

 

5. 리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜ μ‚¬μš©ν•˜κΈ°

리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜μ€ 리슀트λ₯Ό μƒμ„±ν•˜λŠ” κ°„κ²°ν•˜κ³  효율적인 λ°©λ²•μ΄μ—μš”. μ½”λ“œμ˜ 길이λ₯Ό 쀄이고 가독성을 λ†’μ΄λŠ” 데 도움이 λ©λ‹ˆλ‹€.

# λ‚˜μœ 예
squares = []
for x in range(10):
    squares.append(x ** 2)

# 쒋은 예
squares = [x ** 2 for x in range(10)]

 

 

6. μ˜ˆμ™Έ μ²˜λ¦¬ν•˜κΈ°

μ˜ˆμ™Έ μ²˜λ¦¬λŠ” μ½”λ“œμ˜ μ•ˆμ •μ„±μ„ λ†’μ΄λŠ” μ€‘μš”ν•œ λΆ€λΆ„μ΄μ—μš”. μ˜ˆμ™Έ 상황을 적절히 μ²˜λ¦¬ν•˜λ©΄ ν”„λ‘œκ·Έλž¨μ΄ 예기치 μ•Šκ²Œ μ’…λ£Œλ˜λŠ” 것을 λ°©μ§€ν•  수 μžˆμ–΄μš”.

# λ‚˜μœ 예
data = {'key': 'value'}
print(data['nonexistent_key'])

# 쒋은 예
data = {'key': 'value'}
try:
    print(data['nonexistent_key'])
except KeyError:
    print('Key does not exist')

 

 

7. λΆˆν•„μš”ν•œ μ½”λ“œλŠ” μ œκ±°ν•˜κΈ°

μ½”λ“œλ₯Ό μž‘μ„±ν•œ ν›„μ—λŠ” λΆˆν•„μš”ν•œ μ½”λ“œλ₯Ό μ œκ±°ν•˜λŠ” 것이 μ’‹μ•„μš”. μ½”λ“œκ°€ λ‹¨μˆœν• μˆ˜λ‘ μ΄ν•΄ν•˜κΈ° 쉽고 μœ μ§€λ³΄μˆ˜ν•˜κΈ°λ„ μ‰¬μ›Œμš”.

# λ‚˜μœ 예
def add_numbers(a, b):
    result = a + b
    return result

# 쒋은 예
def add_numbers(a, b):
    return a + b

 

 

8. Docstring으둜 ν•¨μˆ˜ μ„€λͺ…ν•˜κΈ°

ν•¨μˆ˜λ‚˜ ν΄λž˜μŠ€μ— λŒ€ν•œ μ„€λͺ…을 Docstring으둜 μž‘μ„±ν•˜λ©΄, λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ μ½”λ“œμ˜ λͺ©μ κ³Ό μ‚¬μš©λ²•μ„ μ‰½κ²Œ 이해할 수 μžˆμ–΄μš”.

 

def add_numbers(a, b):
    """
    두 수λ₯Ό λ”ν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€.

    Args:
    a (int): 첫 번째 숫자
    b (int): 두 번째 숫자

    Returns:
    int: 두 수의 ν•©
    """
    return a + b

 


 

μ΄λŸ¬ν•œ νŒλ“€μ„ ν™œμš©ν•˜λ©΄ 파이썬 μ½”λ“œκ°€ 더 깔끔해지고 가독성이 λ†’μ•„μ§ˆ κ±°μ˜ˆμš”. 클린 μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” μŠ΅κ΄€μ„ 듀이면, 개발 속도가 빨라지고 ν˜‘μ—…λ„ 더 μ›ν™œν•΄μ§„λ‹΅λ‹ˆλ‹€. 😊

λ°˜μ‘ν˜•

'πŸ’» Programming > Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[python] Streamlit κΈ°λ³Έ κΈ°λŠ₯ 읡히기 ! | ν…μŠ€νŠΈ & 데이터 ν‘œμ‹œ | λ ˆμ΄μ•„μ›ƒ 관리 | 파일 μ—…λ‘œλ“œ & λ‹€μš΄λ‘œλ“œ  (0) 2024.07.14
[python] μ€‘κ³ κΈ‰μžλ₯Ό μœ„ν•œ 파이썬 클린 μ½”λ“œ μž‘μ„± κΏ€νŒ 8κ°€μ§€ : 더 κΉ”λ”ν•˜κ³  μœ μ§€λ³΄μˆ˜ μ‰¬μš΄ μ½”λ“œ μž‘μ„±ν•˜κΈ°!  (0) 2024.07.11
[python] Streamlit 으둜 데이터 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ§Œλ“€κΈ°! | κ°„λ‹¨ν•œ λŒ€μ‹œλ³΄λ“œ & 웹데λͺ¨ νŽ˜μ΄μ§€ 개발  (1) 2024.07.08
[python] 파이썬 병렬 처리 | joblib μ‚¬μš©λ²• | λ©€ν‹°ν”„λ‘œμ„Έμ‹± | λ©€ν‹°μ“°λ ˆλ”©  (0) 2024.01.19
[python] λ©€ν‹°ν”„λ‘œμ„Έμ‹± Process μ‚¬μš©λ²• 및 μ½”λ“œ μ˜ˆμ‹œ | multiprocessing.Process | μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€μ— μ„œλ‘œ λ‹€λ₯Έ μž‘μ—…μ„ ν• λ‹Ή  (3) 2024.01.07
'πŸ’» Programming/Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [python] Streamlit κΈ°λ³Έ κΈ°λŠ₯ 읡히기 ! | ν…μŠ€νŠΈ & 데이터 ν‘œμ‹œ | λ ˆμ΄μ•„μ›ƒ 관리 | 파일 μ—…λ‘œλ“œ & λ‹€μš΄λ‘œλ“œ
  • [python] μ€‘κ³ κΈ‰μžλ₯Ό μœ„ν•œ 파이썬 클린 μ½”λ“œ μž‘μ„± κΏ€νŒ 8κ°€μ§€ : 더 κΉ”λ”ν•˜κ³  μœ μ§€λ³΄μˆ˜ μ‰¬μš΄ μ½”λ“œ μž‘μ„±ν•˜κΈ°!
  • [python] Streamlit 으둜 데이터 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ§Œλ“€κΈ°! | κ°„λ‹¨ν•œ λŒ€μ‹œλ³΄λ“œ & 웹데λͺ¨ νŽ˜μ΄μ§€ 개발
  • [python] 파이썬 병렬 처리 | joblib μ‚¬μš©λ²• | λ©€ν‹°ν”„λ‘œμ„Έμ‹± | λ©€ν‹°μ“°λ ˆλ”©
뭅즀
뭅즀
AI 기술 λΈ”λ‘œκ·Έ
    λ°˜μ‘ν˜•
  • 뭅즀
    CV DOODLE
    뭅즀
  • 전체
    였늘
    μ–΄μ œ
  • 곡지사항

    • ✨ About Me
    • λΆ„λ₯˜ 전체보기 (198)
      • πŸ“– Fundamentals (33)
        • Computer Vision (9)
        • 3D vision & Graphics (6)
        • AI & ML (15)
        • NLP (2)
        • etc. (1)
      • πŸ› Research (64)
        • Deep Learning (7)
        • Image Classification (2)
        • Detection & Segmentation (17)
        • OCR (7)
        • Multi-modal (4)
        • Generative AI (6)
        • 3D Vision (2)
        • Material & Texture Recognit.. (8)
        • NLP & LLM (11)
        • etc. (0)
      • 🌟 AI & ML Tech (7)
        • AI & ML μΈμ‚¬μ΄νŠΈ (7)
      • πŸ’» Programming (85)
        • Python (18)
        • Computer Vision (12)
        • LLM (4)
        • AI & ML (17)
        • Database (3)
        • Apache Airflow (6)
        • Docker & Kubernetes (14)
        • μ½”λ”© ν…ŒμŠ€νŠΈ (4)
        • C++ (1)
        • etc. (6)
      • πŸ’¬ ETC (3)
        • μ±… 리뷰 (3)
  • 링크

  • 인기 κΈ€

  • νƒœκ·Έ

    LLM
    도컀
    VLP
    OpenAI
    object detection
    Computer Vision
    컴퓨터비전
    λ”₯λŸ¬λ‹
    ChatGPT
    pandas
    GPT
    3D Vision
    파이썬
    nlp
    객체 κ²€μΆœ
    CNN
    deep learning
    multi-modal
    OCR
    airflow
    pytorch
    Image Classification
    Text recognition
    OpenCV
    Python
    κ°μ²΄κ²€μΆœ
    AI
    segmentation
    ν”„λ‘¬ν”„νŠΈμ—”μ§€λ‹ˆμ–΄λ§
    material recognition
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
뭅즀
[python] 파이썬 클린 μ½”λ“œ μž‘μ„± κΏ€νŒ 8κ°€μ§€ : 더 κΉ”λ”ν•˜κ³  가독성 높은 μ½”λ“œ μž‘μ„±ν•˜κΈ°!
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”