14. [파이썬] μŠ€νŽ˜μ…œ λ©”μ†Œλ“œμ™€ μ—°μ‚°μž μ˜€λ²„λ‘œλ”©

2026. 3. 8. 11:22Β·Python & SQL/Python Basics
πŸ’‘ λ³Έ ν¬μŠ€νŒ…μ€ μˆ˜μ—… λ‚΄μš©, ꡐ재, ChatGPTλ₯Ό μ°Έκ³ ν•˜μ—¬ μ •λ¦¬ν•œ ν•™μŠ΅ κΈ°λ‘μž…λ‹ˆλ‹€.
κΈ€κ³Ό κ·Έλ¦Ό λ“± λͺ¨λ“  μ½˜ν…μΈ μ˜ μ •리 λ° μž‘성은 λ³Έ λΈ”λ‘œκ·Έμ—μ„œ μ§μ ‘ μ œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

 

Python κΈ°μ΄ˆλΆ€ν„° Streamlit λ°μ΄ν„° μ‹œκ°ν™”κΉŒμ§€ μ •λ¦¬ν•˜λŠ” ν•™μŠ΅ κΈ°λ‘μž…λ‹ˆλ‹€.

이 글은 '14. [파이썬] μŠ€νŽ˜μ…œ λ©”μ†Œλ“œμ™€ μ—°μ‚°μž μ˜€λ²„λ‘œλ”©' μž…λ‹ˆλ‹€.

 

 

Pythonμ—μ„œλŠ” κ°μ²΄λ₯Ό μƒμ„±ν•˜λ©΄ λ‹¨μˆœνžˆ λ°μ΄ν„°λ₯Ό μ €μž₯ν•˜λŠ” κ²ƒλΏλ§Œ μ•„λ‹ˆλΌ λ‹€μ–‘ν•œ μ—°μ‚°κ³Ό λ™μž‘을 μˆ˜ν–‰ν•  μˆ˜ μžˆλ‹€.

예λ₯Ό λ“€μ–΄ len(), +, print() κ°™μ€ μ—°μ‚°λ„ λ‚΄λΆ€μ μœΌλ‘œλŠ” νŠΉμ • λ©”μ„œλ“œκ°€ ν˜ΈμΆœλ˜λŠ” λ°©μ‹μœΌλ‘œ λ™μž‘ν•œλ‹€.

 

μ΄λ•Œ μ‚¬μš©λ˜λŠ” κ²ƒμ΄ μŠ€νŽ˜μ…œ λ©”μ†Œλ“œ(Special Method) μ΄λ©°, μ΄λŸ¬ν•œ λ©”μ„œλ“œλ₯Ό ν™œμš©ν•˜λ©΄ μ—°μ‚°μž μ˜€λ²„λ‘œλ”©(Operator Overloading) λ„ κ΅¬ν˜„

ν•  μˆ˜ μžˆλ‹€.

 

이번 κΈ€μ—μ„œλŠ” Pythonμ—μ„œ κ°μ²΄μ˜ λ™μž‘을 ν™•μž₯ν•˜λŠ” μŠ€νŽ˜μ…œ λ©”μ†Œλ“œμ™€ μ—°μ‚°μž μ˜€λ²„λ‘œλ”©μ˜ κ°œλ…κ³Ό κΈ°λ³Έ μ‚¬μš© λ°©λ²•을 μ •리해본닀.

 

 

μŠ€νŽ˜μ…œ λ©”μ†Œλ“œ

μŠ€νŽ˜μ…œ λ©”μ†Œλ“œλŠ” κ°μ²΄μ˜ νŠΉμ • λ™μž‘을 μ •μ˜ν•˜λŠ” λ©”μ†Œλ“œμ΄λ‹€.

일반적으둜 μ΄λ¦„ μ•žλ’€μ— λ”λΈ” μ–Έλ”μŠ€μ½”μ–΄(__) κ°€ λΆ™λŠ” ν˜•νƒœλ‘œ μž‘μ„±λœλ‹€.

예λ₯Ό λ“€μ–΄ λ‹€μŒκ³Ό κ°™μ€ λ©”μ†Œλ“œλ“€μ΄ μžˆλ‹€.

  • __init__
  • __str__
  • __len__
  • __add__

이 λ©”μ†Œλ“œλ“€μ€ Python λ‚΄λΆ€μ—μ„œ νŠΉμ • μ—°μ‚°μ΄ λ°œμƒν•  λ•Œ μžλ™μœΌλ‘œ ν˜ΈμΆœλœλ‹€.

 

 

str λ©”μ†Œλ“œ

객체λ₯Ό print()둜 μΆœλ ₯ν•  λ•Œ μ–΄λ–€ ν˜•νƒœλ‘œ ν‘œμ‹œν• μ§€ μ •μ˜ν•˜λŠ” λ©”μ†Œλ“œμ΄λ‹€.

예λ₯Ό λ“€μ–΄ λ‹€μŒ ν΄λž˜μŠ€λ₯Ό λ³΄μž.

class Student:

    def __init__(self, name, score):
        self.name = name
        self.score = score

 

객체λ₯Ό 좜λ ₯ν•˜λ©΄ 기본적으둜 λ‹€μŒκ³Ό 같이 ν‘œμ‹œλœλ‹€.

s = Student("Matt", 90)
print(s)

 

좜λ ₯ μ˜ˆμ‹œ

<__main__.Student object at 0x...>

 

이 좜λ ₯을 μ›ν•˜λŠ” λ°©μ‹μœΌλ‘œ λ°”κΎΈλ €λ©΄ __str__ λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•˜λ©΄ λœλ‹€.

class Student:

    def __init__(self, name, score):
        self.name = name
        self.score = score

    def __str__(self):
        return f"{self.name} : {self.score}"

 

이번 객체λ₯Ό 좜λ ₯ν•˜λ©΄ λ‹€μŒκ³Ό 같이 ν‘œμ‹œλœλ‹€.

s = Student("Matt", 90)
print(s)

 

μ‹€ν–‰ κ²°κ³Ό

Matt : 90

 

 

len λ©”μ†Œλ“œ

len() ν•¨μˆ˜κ°€ ν˜ΈμΆœλ  λ•Œ μ‹€ν–‰λ˜λŠ” λ©”μ†Œλ“œμ΄λ‹€.

예λ₯Ό λ“€μ–΄ λ‹€μŒ ν΄λž˜μŠ€λ₯Ό λ³΄μž.

class Team:

    def __init__(self, members):
        self.members = members

    def __len__(self):
        return len(self.members)

 

이제 len()을 μ‚¬μš©ν•  수 μžˆλ‹€.

team = Team(["Alice", "Bob", "Charlie"])
print(len(team))

 

μ‹€ν–‰ κ²°κ³Ό

3

 

 

μ—°μ‚°μž μ˜€λ²„λ‘œλ”©

μ—°μ‚°μž μ˜€λ²„λ‘œλ”©μ€ κΈ°μ‘΄ μ—°μ‚°μžμ˜ λ™μž‘을 μ‚¬μš©μž μ •μ˜ κ°μ²΄μ— λ§žκ²Œ μž¬μ •μ˜ν•˜λŠ” κ²ƒμ΄λ‹€.

예λ₯Ό λ“€μ–΄ + μ—°μ‚°μ„ μ‚¬μš©ν•  λ•Œ λ‚΄λΆ€μ μœΌλ‘œλŠ” __add__ λ©”μ†Œλ“œκ°€ ν˜ΈμΆœλœλ‹€.

class Number:

    def __init__(self, value):
        self.value = value

    def __add__(self, other):
        return Number(self.value + other.value)

 

이제 객체끼리 + 연산을 μ‚¬μš©ν•  수 μžˆλ‹€.

n1 = Number(10)
n2 = Number(20)

result = n1 + n2
print(result.value)

 

μ‹€ν–‰ κ²°κ³Ό

30

 

 

μŠ€νŽ˜μ…œ λ©”μ†Œλ“œ λ™μž‘ λ°©μ‹

Pythonμ—μ„œ μ—°μ‚°μžλŠ” λ‚΄λΆ€μ μœΌλ‘œ μŠ€νŽ˜μ…œ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•œλ‹€.

예λ₯Ό λ“€μ–΄ λ‹€μŒκ³Ό κ°™μ€ κ΄€κ³„κ°€ μžˆλ‹€.

μ—°μ‚° μŠ€νŽ˜μ…œ λ©”μ†Œλ“œ
+ __add__
- __sub__
* __mul__
len() __len__
print() __str__

즉 κ°μ²΄μ— ν•΄λ‹Ή λ©”μ†Œλ“œλ₯Ό κ΅¬ν˜„ν•˜λ©΄ Python κΈ°λ³Έ μ—°μ‚°μ„ μ‚¬μš©μž μ •μ˜ κ°μ²΄μ—μ„œλ„ μ‚¬μš©ν•  μˆ˜ μžˆλ‹€.

 

 

κ°„λ‹¨ν•œ μ˜ˆμ œ

κ°„λ‹¨ν•œ λ²‘ν„° ν΄λž˜μŠ€λ₯Ό λ§Œλ“€μ–΄λ³΄μž.

class Vector:

    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)

    def __str__(self):
        return f"({self.x}, {self.y})"

 

μ‚¬μš© 예제

v1 = Vector(1,2)
v2 = Vector(3,4)

v3 = v1 + v2
print(v3)

 

μ‹€ν–‰ κ²°κ³Ό

(4, 6)

이처럼 μŠ€νŽ˜μ…œ λ©”μ†Œλ“œλ₯Ό ν™œμš©ν•˜λ©΄ κ°μ²΄μ˜ λ™μž‘을 μžμ—°μŠ€λŸ½κ²Œ ν™•μž₯ν•  μˆ˜ μžˆλ‹€.

 

 

정리

Pythonμ—μ„œλŠ” μŠ€νŽ˜μ…œ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•΄ κ°μ²΄μ˜ κΈ°λ³Έ λ™μž‘을 μ •μ˜ν•  μˆ˜ μžˆλ‹€.

특히 __str__, __len__, __add__ κ°™μ€ λ©”μ†Œλ“œλŠ” κ°μ²΄μ˜ μΆœλ ₯, κΈΈμ΄ κ³„μ‚°, μ—°μ‚° λ™μž‘을 κ΅¬ν˜„ν•  λ•Œ μžμ£Ό μ‚¬μš©λœλ‹€.

 

λ˜ν•œ μ—°μ‚°μž μ˜€λ²„λ‘œλ”©μ„ ν™œμš©ν•˜λ©΄ μ‚¬μš©μž μ •μ˜ κ°μ²΄μ—μ„œλ„ +, -, len() κ°™μ€ μ—°μ‚°μ„ μžμ—°μŠ€λŸ½κ²Œ μ‚¬μš©ν•  μˆ˜ μžˆλ‹€.

 

μ΄λŸ¬ν•œ κΈ°λŠ₯은 κ°μ²΄μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ ν΄λž˜μŠ€μ˜ λ™μž‘을 μœ μ—°ν•˜κ²Œ ν™•μž₯ν•  μˆ˜ μžˆκ²Œ ν•΄μ£ΌλŠ” μ€‘μš”ν•œ μš”μ†Œμ΄λ‹€.

 

λ‹€μŒ κΈ€μ—μ„œλŠ” ν΄λž˜μŠ€ λ‚΄λΆ€ κ΅¬μ‘°λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•œ **정보은닉과 ν΄λž˜μŠ€ λ‚΄λΆ€ μ†μ„± κ΅¬μ‘°(__dict__, __slots__)**λ₯Ό μ‚΄νŽ΄λ³Έλ‹€.

 

 

'Python & SQL > Python Basics' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

16. [파이썬] class methos vs static method  (2) 2026.03.08
15. [파이썬] 정보은닉과 클래슀 λ‚΄λΆ€ ꡬ쑰  (2) 2026.03.08
13. [파이썬] 상속과 νƒ€μž… 확인  (0) 2026.03.08
12. [파이썬] ν΄λž˜μŠ€μ™€ 객체  (0) 2026.03.08
11. [파이썬] Python λ©”λͺ¨λ¦¬ 관리  (0) 2026.03.08
'Python & SQL/Python Basics' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • 16. [파이썬] class methos vs static method
  • 15. [파이썬] 정보은닉과 클래슀 λ‚΄λΆ€ ꡬ쑰
  • 13. [파이썬] 상속과 νƒ€μž… 확인
  • 12. [파이썬] ν΄λž˜μŠ€μ™€ 객체
J. Son
J. Son
Petit à petit l'oiseau fait son nid.
  • J. Son
    Steady Study Log
    J. Son
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (171) N
      • Python & SQL (63)
        • Python Basics (21)
        • Python Problems (23)
        • Python Practice (11)
        • MySQL (1)
        • Git & GitHub (7)
      • ML & DL (7) N
      • Projects (5)
        • Project Portfolio (5)
      • AI Camp (4)
        • Camp Reflection (4)
      • Concept Notes (6)
        • Statistics & Stata (4)
        • Mathematics (2)
      • Archive (85) N
        • Java (24)
        • R (1)
        • Languages (49)
        • Miscellaneous (11) N
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • λ°©λͺ…둝
  • 링크

    • GitHub
    • WikiDocs
  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    λΆˆμ–΄ 곡뢀
    파이썬
    Python
    ν”„λ‘œμ νŠΈ 였일러
    passe compose
    GIT
    μ–΄λ¦°μ™•μž λΆˆμ–΄
    객체
    μ ν”„νˆ¬νŒŒμ΄μ¬ μ—°μŠ΅λ¬Έμ œ
    Stata
    MySQL
    파이썬 크둀링
    Github
    λΆˆμ–΄ κ΄€κ³„λŒ€λͺ…사
    python problem
    Le Petit Prince
    μ–΄λ¦°μ™•μž ν”„λž‘μŠ€μ–΄
    λ¨Έμ‹ λŸ¬λ‹
    λ§₯ git
    파이썬 streamlit
    μ ν”„νˆ¬νŒŒμ΄μ¬ μ—°μŠ΅λ¬Έμ œ 풀이
    share.streamlit.io
    machine learning
    python streamlit
    streamlit
    ν”„λž‘μŠ€μ–΄ 곡뢀
    μžλ°”
    초보자λ₯Ό μœ„ν•œ 파이썬 300제
    파이썬 문제
    볡합과거
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.6
J. Son
14. [파이썬] μŠ€νŽ˜μ…œ λ©”μ†Œλ“œμ™€ μ—°μ‚°μž μ˜€λ²„λ‘œλ”©
μƒλ‹¨μœΌλ‘œ

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