이 μ˜μ—­μ„ λˆ„λ₯΄λ©΄ 첫 νŽ˜μ΄μ§€λ‘œ 이동
butter_shower λΈ”λ‘œκ·Έμ˜ 첫 νŽ˜μ΄μ§€λ‘œ 이동

butter_shower

νŽ˜μ΄μ§€ 맨 μœ„λ‘œ μ˜¬λΌκ°€κΈ°

butter_shower

개발자의 ꡐ양 (3) - μ½”λ”© μŠ€νƒ€μΌ κ°€μ΄λ“œ μ€€μˆ˜ν•˜κΈ°. Pythonicν•œ μ½”λ“œ μž‘μ„±ν•˜κΈ°

  • 2020.08.05 16:41
  • 🌱 μ™€κΈ€μ™€κΈ€λ»˜κΈ€
κΈ€ μž‘μ„±μž: _rian

μ½”λ”© μŠ€νƒ€μΌ κ°€μ΄λ“œλž€?

μ½”λ”© μŠ€νƒ€μΌ κ°€μ΄λ“œ - μ½”λ”© μ»¨λ²€μ…˜

λ§Žμ€ κ°œλ°œμžλ“€μ΄ 곡감할 수 μžˆλ“―μ΄, μ‰½κ²Œ μ½νžˆλŠ” μ½”λ“œκ°€ μžˆλŠ” 반면 λ„μ €νžˆ 무슨 λ‘œμ§μΈμ§€ 이해가 κ°€μ§€ μ•ŠλŠ” μ½”λ“œλ„ μžˆμŠ΅λ‹ˆλ‹€. 

λ‚΄λΆ€ 둜직이 λ³΅μž‘ν•˜κ²Œ μ–½ν˜€μžˆλŠ” κ²½μš°μ—λŠ” μ–΄μ©”μˆ˜ μ—†λ‹€κ³  μΉ˜λ”λΌλ„, λ‹¨μˆœν•˜κ²Œ λͺ…λͺ…κ·œμΉ™κ³Ό white space만 잘 μ‚¬μš©ν•΄λ„ 가독성을 많이 κ°œμ„ ν•  수 μžˆμ–΄μš”. 읽히기 쒋은 μ½”λ“œκ°€ 쒋은 μ½”λ“œκ³ , 클린 μ½”λ“œλΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 

코딩을 ν•  λ•Œ λ³€μˆ˜λͺ…을 κΌ­ μ΄λ ‡κ²Œ ν•΄μ•Όν•œλ‹€, λΌλŠ” 것은 μ•„λ‹ˆμ§€λ§Œ μ–΄λ–€ μ–Έμ–΄λ₯Ό μ‚¬μš©ν•˜λŠ” 개발자라면 κ·Έ μ–Έμ–΄μ˜ μ½”λ”© μŠ€νƒ€μΌ κ°€μ΄λ“œ, 즉 μ½”λ”©μ»¨λ²€μ…˜μ„ μ€€μˆ˜ν•΄μ„œ 코딩을 ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. μ½”λ”© μ»¨λ²€μ…˜μ€ Java, Java Script λ“±λ“± μ €λ§ˆλ‹€μ˜ 암묡적인 λ£°μ΄μžˆμŠ΅λ‹ˆλ‹€. 파이썬의 κ²½μš°μ—λŠ” pep8λΌλŠ” μ½”λ”© μŠ€νƒ€μΌ κ°€μ΄λ“œλ₯Ό μ€€μˆ˜ν•˜κ³ , 이λ₯Ό μ€€μˆ˜ν•˜μ—¬ μž‘μ„±ν•œ μ½”λ“œλ₯Ό 파이썬슀러운(Pythonic) μ½”λ“œλΌκ³  ν•©λ‹ˆλ‹€.

Pythonicν•œ μ½”λ“œ μž‘μ„±ν•˜κΈ°

가독성은 파이썬의 큰 μž₯점 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€.
μ΄μœ λŠ” μ™„λ²½ν•œ μ½”λ“œ μŠ€νƒ€μΌ κ°€μ΄λ“œλΌμΈκ³Ό "파이썬슀러운(Pythonic)"ν•œ 이디엄(μ½”λ“œ μž‘μ„±λ²•) λ•Œλ¬Έμž…λ‹ˆλ‹€.

νŒŒμ΄μ¬μ—λŠ” pep8μ΄λΌλŠ” μ½”λ“œ μŠ€νƒ€μΌ κ°€μ΄λ“œλ₯Ό λŒ€λΆ€λΆ„μ˜ κ°œλ°œμžκ°€ 이λ₯Ό μ€€μ‚¬ν•˜λ©° κ°œλ°œμ„ ν•˜κ³ μžˆμ£ .

κ°œλ°œμžλ“€μ΄ λ‹€ν•¨κ»˜ μ•”λ¬΅μ μœΌλ‘œ λ”°λ₯΄λŠ” μŠ€νƒ€μΌμ΄ μžˆλ‹€λŠ” 것은 λ§Žμ€ 도움이 λ©λ‹ˆλ‹€. 그럼 ν•˜λ‚˜ν•˜λ‚˜ μ‚΄νŽ΄λ³ΌκΉŒμš”?

참고 자료

  • Pep Code Layout

 

Whitespace

  1. ν•œ μ€„μ˜ μ½”λ“œ 길이가 79자 μ΄ν•˜μ—¬μ•Ό ν•©λ‹ˆλ‹€.
y = a + a + a + a

 

  1. ν•¨μˆ˜μ™€ ν΄λž˜μŠ€λŠ” λ‹€λ₯Έ μ½”λ“œμ™€ 빈 쀄 λ‘κ°œλ‘œ κ΅¬λΆ„ν•©λ‹ˆλ‹€.
class a():
    pass
# λΉˆμ€„
# λΉˆμ€„
class b():
    pass
# λΉˆμ€„
# λΉˆμ€„
def c():
    pass
# λΉˆμ€„
# λΉˆμ€„

 

  1. ν΄λž˜μŠ€μ—μ„œ ν•¨μˆ˜λŠ” 빈 쀄 ν•˜λ‚˜λ‘œ κ΅¬λΆ„ν•©λ‹ˆλ‹€.
class a():

    def b():
        pass

    def c():
        pass

 

주석

  • μ½”λ“œμ˜ λ‚΄μš©κ³Ό μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” 주석은 ν”Όν•©λ‹ˆλ‹€.
  • λΆˆν•„μš”ν•œ 주석은 ν”Όν•©λ‹ˆλ‹€.

 

이름 κ·œμΉ™

  1. λ³€μˆ˜λͺ… μ•žμ— _(밑쀄)이 λΆ™μœΌλ©΄ ν•¨μˆ˜ λ“±μ˜ λ‚΄λΆ€μ—μ„œλ§Œ μ‚¬μš©λ˜λŠ” λ³€μˆ˜λ₯Ό μΌμ»«μŠ΅λ‹ˆλ‹€.
_my_list = []

 

  1. λ³€μˆ˜λͺ… 뒀에 _(밑쀄)이 λΆ™μœΌλ©΄ 라이브러리 ν˜Ήμ€ 파이썬 κΈ°λ³Έ ν‚€μ›Œλ“œμ™€μ˜ μΆ©λŒμ„ ν”Όν•˜κ³  싢을 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
import_ = "not_import"

 

  1. μ†Œλ¬Έμž l, λŒ€λ¬Έμž O, λŒ€λ¬Έμž Iλ₯Ό κ°€λŠ₯ν•˜λ©΄ μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  2. λͺ¨λ“ˆ(Module)λͺ…은 짧은 μ†Œλ¬Έμžλ‘œ κ΅¬μ„±λ˜λ©°, ν•„μš”ν•˜λ‹€λ©΄ λ°‘μ€„λ‘œ λ‚˜λˆ•λ‹ˆλ‹€.

my_module.py

 

  1. 클래슀λͺ…은 파슀칼 μΌ€μ΄μŠ€(Pascal Case) μ»¨λ²€μ…˜μœΌλ‘œ μž‘μ„±ν•©λ‹ˆλ‹€. 넀이밍 μ»¨λ²€μ…˜μ€ λ’€λ₯Ό μ°Έκ³ ν•˜μ„Έμš”!
class MyClass():
    pass

 

  1. ν—˜μˆ˜λͺ…은 μ†Œλ¬Έμžλ‘œ κ΅¬μ„±ν•˜λ˜ ν•„μš”ν•˜λ©΄ λ°‘μ€„λ‘œ λ‚˜λˆ•λ‹ˆλ‹€.
def my_function():
    pass

 

  1. μƒμˆ˜(Constant)λŠ” _λͺ¨λ“ˆ λ‹¨μœ„μ—μ„œλ§Œ μ •μ˜_ν•˜λ©°, λͺ¨λ‘ λŒ€λ¬Έμžλ‘œ ν‘œν˜„ν•©λ‹ˆλ‹€. ν•„μš”ν•˜λ‹€λ©΄ λ°‘μ€„λ‘œ λ‚˜λˆ•λ‹ˆλ‹€.
MY_PI = 3.14

 

넀이밍 μ»¨λ²€μ…˜ (Naming Convention)

μ‚¬λžŒλ“€λ§ˆλ‹€ λ³€μˆ˜λͺ…을 μ λŠ” 방식이 λ‹€λ₯΄λ©΄ μ½”λ“œκ°€ 깔끔해보이지 μ•Šμ•„ 가독성이 μ’‹μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 톡일성을 κ°–κΈ° μœ„ν•΄μ„œλŠ” μ‚¬λžŒλ“€μ΄ κ³΅μœ ν•˜λŠ” μ½”λ”© μŠ€νƒ€μΌ κ°€μ΄λ“œλ₯Ό κ°€μ§€κ³  μžˆλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ pep8 μ½”λ”©μŠ€νƒ€μΌ κ°€μ΄λ“œμ—μ„œλŠ” 이름을 μž‘μ„±ν•  λ•Œ μ‚¬μš©ν•˜λŠ” 넀이밍 μ»¨λ²€μ…˜μ΄ μžˆμŠ΅λ‹ˆλ‹€.

λŒ€ν‘œμ μΈ 넀이밍 μ»¨λ²€μ…˜μ€ snake_case, PascalCase, camelCaseμž…λ‹ˆλ‹€.

  • snake_case
    • λͺ¨λ“  곡백을 "_"둜 λ°”κΎΈκ³  λͺ¨λ“  λ‹¨μ–΄λŠ” μ†Œλ¬Έμžμž…λ‹ˆλ‹€.
    • νŒŒμ΄μ¬μ—μ„œλŠ” ν•¨μˆ˜, λ³€μˆ˜ 등을 λͺ…λͺ…ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    • ex) this_is_snake_case
  • PascalCase
    • λͺ¨λ“  단어가 λŒ€λ¬Έμžλ‘œ μ‹œμž‘ν•©λ‹ˆλ‹€.
    • UpperCamelCase, CapWords라고도 λΆˆλ¦½λ‹ˆλ‹€.
    • νŒŒμ΄μ¬μ—μ„œλŠ” 클래슀λ₯Ό λͺ…λͺ…ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    • ex) ThisIsPascalCase
  • camelCase
    • μ²˜μŒμ€ μ†Œλ¬Έμžλ‘œ μ‹œμž‘ν•˜κ³  이후 λͺ¨λ“  λ‹¨μ–΄μ˜ 첫 κΈ€μžλŠ” λŒ€λ¬Έμžλ‘œ ν•©λ‹ˆλ‹€.
    • νŒŒμ΄μ¬μ—μ„œλŠ” 거의 μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. (java λ“±μ—μ„œ μ‚¬μš©)
    • ex) thisCamelCase

개발자의 ꡐ양 μ‹œλ¦¬μ¦ˆ

  • 2020/07/27 - [🌱] - 개발자의 ꡐ양 (1) - ν˜‘μ—…νˆ΄
  • 2020/07/27 - [🌱] - 개발자의 ꡐ양 (2) - 버전 관리와 Git, 그리고 Github

'🌱 μ™€κΈ€μ™€κΈ€λ»˜κΈ€' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Kaggle] μΊμ‘μ• μ˜ 캐린이 μ§„ν™”~!!  (0) 2020.08.26
λ§€λ ₯적인 κΉƒν—ˆλΈŒ ν”„λ‘œν•„μ„ λ§Œλ“€μ–΄λ³΄μ•„μš” 🌻  (5) 2020.08.08
개발자의 ꡐ양 (2) - 버전 관리와 Git, 그리고 Github  (0) 2020.07.27
개발자의 ꡐ양 (1) - ν˜‘μ—…νˆ΄  (0) 2020.07.27
케글을 처음 μ‹œμž‘ν•΄λ³΄λ‹€  (1) 2020.06.26

λŒ“κΈ€

이 κΈ€ κ³΅μœ ν•˜κΈ°

  • κ΅¬λ…ν•˜κΈ°

    κ΅¬λ…ν•˜κΈ°

  • μΉ΄μΉ΄μ˜€ν†‘

    μΉ΄μΉ΄μ˜€ν†‘

  • 라인

    라인

  • νŠΈμœ„ν„°

    νŠΈμœ„ν„°

  • Facebook

    Facebook

  • μΉ΄μΉ΄μ˜€μŠ€ν† λ¦¬

    μΉ΄μΉ΄μ˜€μŠ€ν† λ¦¬

  • λ°΄λ“œ

    λ°΄λ“œ

  • 넀이버 λΈ”λ‘œκ·Έ

    넀이버 λΈ”λ‘œκ·Έ

  • Pocket

    Pocket

  • Evernote

    Evernote

λ‹€λ₯Έ κΈ€

  • [Kaggle] μΊμ‘μ• μ˜ 캐린이 μ§„ν™”~!!

    [Kaggle] μΊμ‘μ• μ˜ 캐린이 μ§„ν™”~!!

    2020.08.26
  • λ§€λ ₯적인 κΉƒν—ˆλΈŒ ν”„λ‘œν•„μ„ λ§Œλ“€μ–΄λ³΄μ•„μš” 🌻

    λ§€λ ₯적인 κΉƒν—ˆλΈŒ ν”„λ‘œν•„μ„ λ§Œλ“€μ–΄λ³΄μ•„μš” 🌻

    2020.08.08
  • 개발자의 ꡐ양 (2) - 버전 관리와 Git, 그리고 Github

    개발자의 ꡐ양 (2) - 버전 관리와 Git, 그리고 Github

    2020.07.27
  • 개발자의 ꡐ양 (1) - ν˜‘μ—…νˆ΄

    개발자의 ꡐ양 (1) - ν˜‘μ—…νˆ΄

    2020.07.27
λ‹€λ₯Έ κΈ€ 더 λ‘˜λŸ¬λ³΄κΈ°

정보

butter_shower λΈ”λ‘œκ·Έμ˜ 첫 νŽ˜μ΄μ§€λ‘œ 이동

butter_shower

  • butter_shower의 첫 νŽ˜μ΄μ§€λ‘œ 이동

검색

메뉴

  • All Categories
  • About Me
  • Guest Book

μΉ΄ν…Œκ³ λ¦¬

  • 전체보기 (223)
    • πŸ’« 주인μž₯ 이야기 (17)
    • 🌱 μ™€κΈ€μ™€κΈ€λ»˜κΈ€ (27)
    • IT Trends (11)
    • 주인μž₯ 일상 (0)
    • πŸ“’ λ‚΄ λ§ˆμŒλŒ€λ‘œ λ…μ„œ μ„œν‰ (12)
    • λ¨Έμ‹ λŸ¬λ‹ κΏˆλ‚˜λ¬΄ (30)
      • κΈ°λ³Έ κ°œλ… (6)
      • Hands-on! (5)
      • Paper Review (5)
      • 캐린이의 Kaggle (1)
    • μ•Œκ³ λ¦¬μ¦˜ Algorithm (33)
      • PS (8)
    • Computer Engineering (75)
      • Python (8)
      • Cloud Computing (9)
      • C (9)
      • C++ (0)
      • Java (6)
      • Django μž₯κ³  (4)
      • μž„λ² λ””λ“œ μ‹œμŠ€ν…œ (10)
      • 병렬 처리(Parallel Processing) (9)
      • 데이터 톡신 Data communication (4)
      • μœ λ‹‰μŠ€ μ‹œμŠ€ν…œ (Unix System) (3)
      • GitHub (1)
      • 마이크둜 ν”„λ‘œμ„Έμ„œ (micro processor) (1)
      • 데이터 λ§ˆμ΄λ‹ (1)
    • Error Note 🚨 (3)
    • μ˜μ–΄ 곡뢀 (6)
      • Live Academy (6)
    • HOBBY (2)
      • Film Log (2)

졜근 κΈ€

정보

_rian의 butter_shower

butter_shower

_rian

λ‚˜μ˜ μ™ΈλΆ€ 링크

  • Github
  • Facebook
  • Instagram
  • LinkedIn
  • Twitter

λΈ”λ‘œκ·Έ κ΅¬λ…ν•˜κΈ°

  • κ΅¬λ…ν•˜κΈ°
  • RSS ν”Όλ“œ

방문자

  • 전체 방문자
  • 였늘
  • μ–΄μ œ

ν‹°μŠ€ν† λ¦¬

  • ν‹°μŠ€ν† λ¦¬ ν™ˆ
  • 이 λΈ”λ‘œκ·Έ κ΄€λ¦¬ν•˜κΈ°
  • κΈ€μ“°κΈ°
Powered by Tistory / Kakao. © _rian. Designed by Fraccino.

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