μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Kλ°°ν°λ¦¬λ 볼루μ
- μν
- 리μ‘νΈ
- css
- JavaScript
- νλ‘κ·Έλλ°
- μ±
- ComputerScience
- μΉνμ΄μ§λ§λ€κΈ°
- λ°μν
- λ μ
- λΌνλΌμ€μλ§λ
- html
- μλ°μ€ν¬λ¦½νΈ
- κΉλ―Έκ²½μλ§νμμ
- μ€λΈμ
- μ»΄ν¨ν°κ³Όν
- μΉνΌλΈλ¦¬μ±
- ν°μ€ν 리μ±λ¦°μ§
- λ°μ΄ν°λ² μ΄μ€
- database
- Java
- Python
- μ€λΌν΄
- μλ°
- λ§μΌλ΄κ°μΈμμλ€μμ°λ€λ©΄
- μ½λ©
- κ°λ°
- νμ΄μ¬
- Kλ°°ν°λ¦¬
- Today
- Total
JiYoung Dev π₯
[νμ΄μ¬] κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° κΈ°μ΄ λ΄μ© μ 리 λ° μμ½ λ³Έλ¬Έ
[νμ΄μ¬] κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° κΈ°μ΄ λ΄μ© μ 리 λ° μμ½
Shinjio 2023. 2. 22. 16:50κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° κ³΅λΆλ₯Ό νλ©΄μ λμλμ 곡λΆλ₯Ό νλ€ λ³΄λ κ°κ°μ λ΄μ©μ΄ λ¨Έλ¦Ώμμ ν©μ΄μ Έ μμ΄ μ 리λ₯Ό ν΄λ³΄κ³ μ νλ€. μ§κΈκΉμ§ λ΄κ° λ°°μ΄ λ΄μ©μ κΈ°μ΄μ μΈ λ΄μ©μ΄λ―λ‘ μΆν 곡λΆνκ² λ λ΄μ©μ κ³΅λΆ νμ λ€μ μ 리ν΄μ μ λ‘λ ν΄λ³΄κ² λ€.
β» μ£Όμμ μ λ΄κ° λ€μ κ°μ, λΈλ‘κ·Έ μλ£ λ±μ λͺ¨μ λ΄κ° μ΄ν΄νκΈ° μ½κ² λμ μκ°μ μμ±ν λ΄μ©μ΄λ―λ‘ μμ±ν λ΄μ© μ€ νλ¦° λ΄μ©μ΄ μμ μ μλ€λ κ²μ΄λ€.
νμ΄μ¬ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° κΈ°μ΄ λ΄μ© μ 리μ μμμ μλμ λ¬Έμ₯μΌλ‘ μμν΄λ³΄λ € νλ€.
νμ΄μ¬μ μμ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄μ΄λ€.
μ΄ λ¬Έμ₯μ μλ―Έλ₯Ό μ΄ν΄νκΈ° μν΄ κ°μ₯ λ¨Όμ μμμΌ ν κ²μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ΄λ 무μμΈκ°μ΄λ©°, κ·Έ μμμ λ κ°μ²΄λ 무μμΈμ§λ₯Ό μμμΌ νλ€. κ·ΈλΌ λ³Έκ²©μ μΌλ‘ μ΄μ λν΄ μ΄ν΄λ₯Ό μμν΄ λ³΄μ.
π κ°μ²΄(object)λ 무μμΈκ°?
νλ‘κ·Έλλ° μΈκ³μμ κ°μ²΄(object)λ μμ±κ³Ό νλ(κΈ°λ₯)μ κ°μ§ μ΄λ ν μ‘΄μ¬μ΄λ€. μ²μ μ΄λ κ²λ§ μ°μ¬μ§ λ¬Έμ₯μ λ΄€μ λλ μ΄ν΄κ° λμ§ μλλ€. κ·Έλ¬λ μλ₯Ό λ€λ©΄ μ΄ν΄κ° μ¬μμ§λ€. λͺ¨λν°κ° μλ€κ³ μΉμ. λͺ¨λν°λ κ°μ²΄μ΄λ€. μλνλ©΄ λͺ¨λν°λ μμ±κ³Ό νλμ κ°μ§κ³ μκΈ° λλ¬Έμ΄λ€. κ·ΈλΌ λͺ¨λν°λ μ΄λ ν μμ±κ³Ό νλμ κ°μ§κ³ μμκΉ? λͺ¨λν°μ μμ±μ λͺ¨λΈλͺ , νλ©΄μ ν¬κΈ°, μμ, μ‘μ μ μ’ λ₯ λ±μ΄ μλ€. μ¦, μμ±μ μ΄λ ν κ°μ²΄κ° κ°μ§λ λ°μ΄ν°λΌκ³ μκ°νλ©΄ μ½λ€. κ·Έλ λ€λ©΄ λͺ¨λν°μ νλμ 무μμΈκ°? λͺ¨λν°μ νλμ νλ©΄μ μΆλ ₯νλ κ²μ΄λ€. μ΄λ κ² λͺ¨λν°λ μμ±κ³Ό νλμ κ°μ§ νλμ κ°μ²΄κ° λλ€. λ λ€λ₯Έ μλ₯Ό λ€μ΄λ³΄μ. μ΄λ² μμλ λ°λ‘ 'λ'μ΄λ€. λμ μμ±μ 무μμΌκΉ? μ΄λ¦μ΄ λ μ μκ³ , μ±λ³, λμ΄, ν€, λͺΈλ¬΄κ² λ± μ¬λ¬ κ°μ§μ κ²λ€μ΄ μμ±μ΄ λ μ μλ€. κ·ΈλΌ νλμ 무μμΌκΉ? κ±·λ€. λ°λ€. λμ κΉλΉ‘μ΄λ€. λ μ΄λ° κ²λ€μ΄ λ μ μλ€. λ°λΌμ 'λ'λΌλ μ‘΄μ¬λ νλμ κ°μ²΄μ΄λ€.
μ¬κΈ°μ μ 리ν΄λ³΄μ. κ°μ²΄(object)λ 무μμΈκ°?
κ°μ²΄(object)λ μμ±κ³Ό νλμ κ°μ§ μ‘΄μ¬λ‘ μμ±κ³Ό νλμ μ μν μ μλ λͺ¨λ μ‘΄μ¬λ κ°μ²΄κ° λλ€.
μμμ κ°μ²΄λ 무μμΈμ§ μμ보μλ€. μ΄μ λ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ΄λ 무μμΈμ§ μμλ³Ό μ°¨λ‘μ΄λ€.
π κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(object-oriented programming, OOP)μ΄λ 무μμΈκ°?
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ λ§ κ·Έλλ‘ κ°μ²΄λ₯Ό μ§ν₯νλ νλ‘κ·Έλλ°, κ°μ²΄λ₯Ό νμ©ν νλ‘κ·Έλλ°μ΄λ λ»μ΄λ€. μ ννκ²λ νλμ νλ‘κ·Έλ¨μ λ€μμ κ°μ²΄λ‘ ꡬμ±νκ³ , μ¬λ¬ κ°μ²΄λ€ κ°μ μνΈμμ©μ ν΅ν΄ νλ‘κ·Έλ¨μ λ§λλ λ°©μμ΄λ€. μ΄ λ΄μ© λν μλ₯Ό λ€λ©΄ μ΄ν΄κ° μ¬μμ§λ€. μμμ κ°μ²΄μ μ μλ₯Ό μ€λͺ ν λ λͺ¨λν°λ νλμ κ°μ²΄λΌκ³ νλ€. λͺ¨λν°λ νλμ κ°μ²΄μ΄κ³ , νλ¦°ν°λ μΆλ ₯μ νλ κΈ°λ₯κ³Ό λͺ¨λΈλͺ μ΄λΌλ κ° μμ λ±μ μμ±μ κ°μ§ νλμ κ°μ²΄μ΄λ€. ν€λ³΄λ λν νλμ κ°μ²΄μ΄κ³ , λ§μ°μ€, μ»΄ν¨ν° 본체 λν κ°μ²΄μ΄λ€. μ΄λ κ² μ»΄ν¨ν°λ μ¬λ¬ κ°μ κ°μ²΄λ€μ΄ λͺ¨μ¬ μνΈμμ©μ νλ©° μλνλ€. μ΄λ»κ² μνΈμμ©νλκ³ ? λ΄κ° ν€λ³΄λλΌλ κ°μ²΄λ₯Ό μ΄μ©ν΄ κΈμλ₯Ό μμ±νλ€. κ·Έλ¬λ©΄ λͺ¨λν°λ ν€λ³΄λμμ μμ±ν λ΄μ©μ λμΌλ‘ λ³Ό μ μκ² νλ©΄μ μΆλ ₯μ νκ³ , νλ¦°ν°λ λ λμκ° μ’ μ΄ μμ μΈμλ₯Ό νλ€. λν, ν€λ³΄λλ‘ μμ±ν λ΄μ©μ μ»΄ν¨ν°μ μ μ₯μ νμ¬ λμ€μλ λ΄μ©μ λΆλ¬μ€κ±°λ μμ ν μ μλ€(본체μ κΈ°λ₯). μ΄λ κ² μ¬λ¬ κ°μ κ°μ²΄λ€μ΄ μνΈμμ©νλ©΄μ νλμ μ»΄ν¨ν°κ° μ μμ μΌλ‘ λμνλ€. μ΄λ° μμΌλ‘ λ€μν κ°μ²΄λ€μ μμ±(λ°μ΄ν°)μ νλ(κΈ°λ₯)μ΄ μλ‘ μνΈμμ©νλ©° μλνλλ‘ νλ‘κ·Έλ¨μ λ§λλ κ²μ΄ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ΄λ€.
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(object-oriented programming, OOP)μ΄λ, νλμ νλ‘κ·Έλ¨μ κΈ°λ₯κ³Ό μμ±μ κ°μ§ λ€μμ κ°μ²΄λ‘ ꡬμ±νμ¬ μ΄λ€ κ°μ μνΈμμ©μ ν΅ν΄ λ§λλ λ°©μ
μ§κΈκΉμ§λ κ°μ²΄μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ μλ―Έμ λν΄μ μ΄μΌκΈ°ν΄λ³΄μλ€. κ·ΈλΌ λ€μ λ€μμ λ¬Έμ₯μ μκΈ°ν΄ λ³΄μ. "νμ΄μ¬μ μμ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄μ΄λ€" μ¦, νμ΄μ¬μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ νλ μΈμ΄λ‘ κ°μ²΄λ₯Ό ꡬμ±νκ³ κ°μ²΄λ€μ΄ μλ‘ μνΈμμ©νμ¬ νλ‘κ·Έλ¨μ μλν μ μκ² μ½λλ₯Ό μμ±ν΄μΌ νλ€.
κ·Έλ λ€λ©΄ 본격μ μΌλ‘ νμ΄μ¬μμ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ μ΄λ€μμΌλ‘ νλμ§ μμ보μ. μ΄λ₯Ό μ΄ν΄νκΈ° μν΄μλ μλ μ©μ΄μ λν μ λ¦¬κ° νμνλ€.
ν΄λμ€, μΈμ€ν΄μ€, μμ±, λ©μλ
μ μμ μ©μ΄λ₯Ό μμμΌ νλ? νμ΄μ¬μ μμ 4κ°μ§λ₯Ό κΈ°μ΄λ‘ νλ‘κ·Έλλ°μ νκΈ° λλ¬Έμ΄λ€. μ‘°κΈ μ΄λ ΅κ² λ§νλ©΄, κ°μ²΄λ₯Ό μ‘°μνκ³ , μ μνλ λ° μ¬μ©λλ κΈ°λ³Έμ μΈ κ°λ λ€μ΄ λ°λ‘ ν΄λμ€, μΈμ€ν΄μ€, μμ±, λ©μλμ΄λ€. κ²°κ΅ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ κ°μ²΄λ₯Ό λ§λ€κ³ μλ‘ μνΈμμ©νλλ‘ λ§λ€μ΄μΌ νλ―λ‘ κ°μ²΄λ₯Ό μ‘°μνκ³ , μ μνλ κ² κΈ°λ³Έμ μΈ λ¨κ³μ΄λ€. λ°λΌμ μμ 4κ°μ§ κ°λ μ μ μμμΌ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ ν μ μλ€. λ¬Όλ‘ , λ€λ₯Έ μμλ μμ μ μμ§λ§ λ΄κ° λ°°μ΄ λ¨κ³λ μ¬κΈ°κΉμ§μ΄λ―λ‘ μμ 4κ°μ§λ§ μ 리λ₯Ό ν΄λ³Έλ€. κ·ΈλΌ μ§κΈλΆν° ν΄λμ€, μΈμ€ν΄μ€, λ©μλ, λ³μκ° λ¬΄μμΈμ§ κ·Έλ¦¬κ³ νμ΄μ¬μμ μ΄λ ν λ¬Έλ²μΌλ‘ μμ±λλμ§ νλνλ μμ보μ.
본격μ μΈ λ΄μ©μ λ€μ΄κ°κΈ°μ μμ κ° κ°λ λ€μ λν΄ κ°λ΅νκ² μ λ¦¬ν΄ λ³΄μλ€.
β ν΄λμ€(class) : κ°μ²΄λ₯Ό λ§λ€κΈ° μν΄ μ¬μ©λλ ν
β μΈμ€ν΄μ€(instance) : ν΄λμ€λ₯Ό μ΄μ©νμ¬ λ§λ κ°μ²΄
β μμ±(attributes) : κ°μ²΄κ° κ°μ§λ λ°μ΄ν°
β λ©μλ(method) : κ°μ²΄κ° κ°μ§λ νλ
π ν΄λμ€(class)
ν΄λμ€λ κ°μ²΄λ₯Ό λ§λ€κΈ° μν΄ μ¬μ©λλ ν(templete or blueprint)μ΄λ€. μκΉ κ°μ²΄μλ μμ±κ³Ό νλμ΄ μμ΄μΌ νλ€κ³ νλ€. λ°λΌμ ν΄λμ€μμλ κ°μ²΄λ₯Ό λ§λ€κΈ° μν΄ νμν μμ±κ³Ό νλμ μ μνλ€.
νμ΄μ¬μμ ν΄λμ€λ₯Ό μμ±νκΈ° μν΄μλ μλμ κ°μ λ¬Έλ²μ μ¬μ©νλ€.
class ν΄λμ€ μ΄λ¦:
λ³μ μ μ #μμ±
ν¨μ μ μ #νλ(λ©μλ)
λ¨, ν΄λμ€ μ΄λ¦μ 맨 첫 κΈμλ νμ λλ¬Έμ
'class'λΌλ ν€μλλ₯Ό μ°κ³ , κ·Έλ€μμ ν΄λμ€μ μ΄λ¦μ μ κ³ κ·Έ μμ μ½λ‘ (:)μ λΆμ΄λ κ²μ΄λ€. κ·Έλ¦¬κ³ κ·Έ μλμ κ°μ²΄λ₯Ό λ§λ€κΈ° μν΄ νμν μμ±κ³Ό νλμ μ μνλ€. μλμμ μμΈν λ€λ£° ν μ§λ§ μ΄ν΄λ₯Ό μν΄ λ―Έλ¦¬ μ€λͺ νμλ©΄ μμ±μ λ³μμ ννλ‘, νλ(method)μ ν¨μμ ννλ‘ μ μνλ€.
μ€μ μμ±λ μ½λλ₯Ό μ΄ν΄λ³΄μ.
μμ μ½λμμ Personμ΄λΌλ μ΄λ¦μ ν΄λμ€λ₯Ό μ μΈνλ€. Person ν΄λμ€ μμλ nameκ³Ό ageλΌλ 2κ°μ μμ±μ μ μν λ³μκ° μκ³ , say_helloλΌλ νλ(λ©μλ)κ° μλ€. μμΌλ‘ νλμ λ©μλ(method)λΌκ³ μΉνκ² λ€.
π μΈμ€ν΄μ€(instance)
λ λ²μ§Έ, μΈμ€ν΄μ€λ μμμ μ€λͺ ν ν΄λμ€λ₯Ό ν΅ν΄ λ§λ κ°κ°μ κ°μ²΄(object)λ₯Ό λ§νλ€. μ΄ λ¬Έμ₯λ§μΌλ‘λ μ΄ν΄κ° μ κ° μλ μλλ° μ€μ μ½λλ₯Ό 보면μ μμΈν μ€λͺ νλλ‘ νκ² λ€.
βΌβΌβΌ ν΄λμ€ μ μΈ βΌβΌβΌ
βΌβΌβΌ μΈμ€ν΄μ€ μμ± βΌβΌβΌ
ν΄λμ€λ₯Ό μ€λͺ ν λ λ³Έ μ½λμ΄λ€. ν΄λμ€λ κ°μ²΄λ₯Ό λ§λλ νλμ νμ΄λΌκ³ νλ€. μ¦, ν΄λμ€λ₯Ό μ΄μ©νλ©΄ κ°μ²΄λ₯Ό λ§λ€ μ μλ€λ κ²μ΄λ€. μ΄λ μμ±λ κ°μ²΄λ₯Ό μΈμ€ν΄μ€(instance)λΌκ³ λΆλ₯Έλ€.
λ λ²μ§Έ μ¬μ§μΈ μΈμ€ν΄μ€ μμ± μ½λλ₯Ό 보μ. 'p'λΌλ μΈμ€ν΄μ€λ 'Person'μ΄λΌλ ν΄λμ€λ₯Ό ν΅ν΄ λ§λ κ²μ΄κ³ , 'p'λΌλ μΈμ€ν΄μ€μλ nameμ΄ johnμ΄κ³ , ageκ° 30μΈ μμ±κ³Ό say_helloλΌλ λ©μλλ₯Ό κ°μ§λ€.
μΈμ€ν΄μ€ μμ± λ¬Έλ²μ μλμ κ°λ€.
μΈμ€ν΄μ€ μ΄λ¦ = ν΄λμ€ μ΄λ¦(νλΌλ―Έν°1, νλΌλ―Έν°2)
π μμ±(attribute)
μΈ λ²μ§Έλ μμ±μ΄λ€. μμ±μ μμμ κ°μ²΄λ₯Ό μ€λͺ ν λ λ§μ΄ μΈκΈμ νλλ° νμ΄μ¬μμλ μ΄λ€ μμΌλ‘ μλνλμ§ μ΄ν΄λ³΄μ.
μκΉ λ³Έ Personμ΄λΌλ ν΄λμ€λ₯Ό μ μΈν μ½λμ΄λ€. class μλμ μ€μ 보면 def __init__ μ€μ΄ μκ³ , κ·Έ μλμ self.name = name, self.age = ageκ° μλ€. μ¬κΈ°μ λ°λ‘ nameκ³Ό ageκ° μμ±μ ν΄λΉνλ€. μ΄λ¦κ³Ό λμ΄. μ¦, κ°μ²΄κ° κ°μ§λ λ°μ΄ν°λ₯Ό μλ―Ένλ€. μ¦, νμ΄μ¬μμ μμ±μ ν΄λμ€ μμμ λ³μμ ννλ‘ μ μλλ€. μμ μ½λμμλ nameμ΄λΌλ λ³μμ ageλΌλ λ³μλ‘ μμ±μ μ μνλ€.
κ·Έλ¦¬κ³ μμ±λ μΈμ€ν΄μ€λ€μ μμ±μ κ°λ€μ κ°λλ€. pλΌλ μΈμ€ν΄μ€λ nameμ΄λΌλ λ³μμ ννλ‘ μ μλ μμ±μ λνμ¬ "John"μ΄λΌλ κ°μ κ°μ§κ³ , ageλΌλ λ³μμ ννλ‘ μ μλ μμ±μ λνμ¬ 30μ΄λΌλ κ°μ κ°μ§λ€.
π λ©μλ(method)
λ§μ§λ§μΌλ‘ λ©μλμ΄λ€. λ©μλλ κ°μ²΄μ νλμ μλ―Ένλ€. λ©μλ λν μμ±κ³Ό κ°μ΄ ν΄λμ€ μμμ μ μλλ©° μμ±μ΄ λ³μλΌλ ννλ‘ μ μλλ λ°λ©΄, λ©μλλ ν¨μμ ννλ‘ μμ±λλ€.
μμ μ½λμμ λ©μλλ say_hello(self)λΌκ³ μ μλ ν¨μλ₯Ό μλ―Ένλ€.
μ΄λ κ² ν΄λμ€, μΈμ€ν΄μ€, μμ±, λ©μλμ λνμ¬ κ°λ¨νκ² μμ보μλ€. μ΄μ μμμΌ ν κ²μ ν΄λμ€λ₯Ό ꡬμ±νλ μμ±κ³Ό λ©μλλ₯Ό μ΄λ»κ² μμ±νκ³ , μ΄λ»κ² λΆλ¬μ¬ κ²μ΄λμ λν κ²μ΄λ€.
λ€μ ν΄λμ€λ₯Ό μ μΈνλ κ²λΆν° μμνμ.
class ν΄λμ€ μ΄λ¦:
λ³μ μ μ #μμ±
ν¨μ μ μ #νλ(λ©μλ)
Personμ΄λΌλ ν΄λμ€λ₯Ό μ μΈνκ³ , κ·Έ μμ μμ±κ³Ό λ©μλλ₯Ό μ μνλ€. μ΄ λ μμ±μ λ³μμ ννλ‘, λ©μλλ ν¨μμ ννλ‘ μμ±νλ€. Person ν΄λμ€λ nameκ³Ό ageλΌλ μμ±μ κ°μ§κ³ μκ³ , say_helloλΌλ λ©μλλ₯Ό κ°μ§κ³ μλ€.
pλΌλ μΈμ€ν΄μ€λ₯Ό μμ±νλ€. κ·Έλ¬λ©΄ p μΈμ€ν΄μ€λ Personν΄λμ€λ₯Ό ν΅ν΄ name = "John"μ΄κ³ age = 30μΈ κ°μ²΄κ° λλ€.
κ·Έλ°λ° λ§μ½ λ΄κ° qλΌλ λ λ€λ₯Έ μΈμ€ν΄μ€λ₯Ό μμ±νλ€. q μΈμ€ν΄μ€λ name = "ally"μ΄κ³ age = 15μΈ μμ±κ°μ κ°μ§λ€. μ΄λ κ² μΈμ€ν΄μ€λ μ°λ¦¬κ° μνλ λ§νΌ μμ±ν μ μκ³ , μ΄λ€μ λͺ¨λ κ°κ°μ μμ±μ λν κ³ μ μ κ°μ κ°μ§λ€. nameκ³Ό ageλΌλ 곡ν΅μ μμ±μ΄μ§λ§ κ·Έμ ν΄λΉνλ κ°(value)μ μΈμ€ν΄μ€λ§λ€ λ€λ₯΄λ€λ λ»μ΄λ€. νμ΄μ¬μμλ μ΄λ¬ν nameκ³Ό ageμ κ°μ΄ μΈμ€ν΄μ€κ° κ³ μ μ κ°μ κ°μ§λ μμ±μ λνλ΄λ λ³μλ₯Ό μΈμ€ν΄μ€ λ³μλΌκ³ λ§νλ€.
μΈμ€ν΄μ€ λ³μ
μΈμ€ν΄μ€κ° κ³ μ μ κ°μ κ°μ§λ μμ±
μΈμ€ν΄μ€ λ³μλ₯Ό μ μνκ³ λΆλ¬μ€λ λ°©λ²μ μλμ κ°λ€.
μΈμ€ν΄μ€ λ³μ μ μνκΈ°
μΈμ€ν΄μ€ μ΄λ¦.μΈμ€ν΄μ€ λ³μ μ΄λ¦ = "μΈμ€ν΄μ€ λ³μμ λ£μ κ°"
μΈμ€ν΄μ€ λ³μ μ¬μ©νκΈ°
μΈμ€ν΄μ€ μ΄λ¦.μΈμ€ν΄μ€ λ³μ μ΄λ¦
μ΄λ κ² μΈμ€ν΄μ€ λ³μλ dot(.)μ μ¬μ©νμ¬ μ μνκ±°λ λΆλ¬μ¬ μ μλ€.
μλλ μΈμ€ν΄μ€ λ³μ μ μ μμ± μ½λμ΄λ€.
μλμ μ½λλ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νκΈ° μν΄ μμ±ν μ½λμ΄λ€.
μμμ μΈμ€ν΄μ€ λ³μλ μΈμ€ν΄μ€κ° κ³ μ μ κ°μ κ°μ§λ μμ±μ λνλ΄λ λ³μλΌκ³ νλ€. κ·Έλ¬λ©΄ μ΄λ€ μΈμ€ν΄μ€λ₯Ό μμ±νλλΌλ κ°μ κ°μ κ°μ§λ λ³μ λν μμ§ μμκΉ? μλ₯Ό λ€λ©΄, μμ±λ μΈμ€ν΄μ€μ κ°μμ κ°μ΄ λ§μ΄λ€. λ°λ‘ μ΄λ¬ν λ³μλ₯Ό ν΄λμ€ λ³μλΌκ³ νλ€. μ¦, κ°μ ν΄λμ€μ μΈμ€ν΄μ€λ€μ΄ 곡μ νλ κ°μ ν΄λμ€ λ³μλΌκ³ νλ€.
ν΄λμ€ λ³μ
κ°μ ν΄λμ€μ μΈμ€ν΄μ€λ€μ΄ 곡μ νλ κ°
ν΄λμ€ λ³μλ ν΄λμ€ μ μ λΆλΆ μλμ μ§μ νκ³ μμ± λ¬Έλ²κ³Ό μ¬μ©λ²μ λ€μκ³Ό κ°λ€.
μμ± λ¬Έλ²
ν΄λμ€ λ³μ μ΄λ¦ = "ν΄λμ€ λ³μμ λ£μ κ°"
μ¬μ© λ°©λ²
β ν΄λμ€ μ΄λ¦.ν΄λμ€ λ³μ μ΄λ¦
β‘ μΈμ€ν΄μ€μ΄λ¦.ν΄λμ€ λ³μ μ΄λ¦
μλλ ν΄λμ€ λ³μ μμ± μ½λμ΄λ€. UserλΌλ ν΄λμ€ μ μΈ μλμ count = 0μ΄λΌκ³ ν΄λμ€ λ³μλ₯Ό μ μνμλ€. μ¬κΈ°μ countλ μμ±λ μΈμ€ν΄μ€μ μ΄κ°μμ΄λ€. κ·Έλ¦¬κ³ μΈμ€ν΄μ€μ μ΄κ°μλ₯Ό ꡬνκΈ° μν΄ μΈμ€ν΄μ€κ° μμ±λ λλ§λ€ countλ 1μ© μΆκ°κ° λλ€. μ΄λ₯Ό __init__ λ©μλ 맨 μλμ μμ±νμλ€.
μμ μ½λμμλ ν΄λμ€ μ΄λ¦.ν΄λμ€ λ³μ μ΄λ¦μΌλ‘ ν΄λμ€ λ³μλ₯Ό μ¬μ©νμλλ°, ν΄λμ€ λ³μλ μΈμ€ν΄μ€ μ΄λ¦.ν΄λμ€ λ³μ μ΄λ¦μΌλ‘λ μ¬μ©ν μ μλ€. μ΄μ κ΄λ ¨ν΄μλ μλ 첨λΆλ κ΄λ ¨ λ§ν¬μ ν΄λμ€ λ³μ λΆλΆμ μ°Έκ³ νκΈΈ λ°λλ€.
μΈμ€ν΄μ€ λ©μλ
μ΄μ μΈμ€ν΄μ€μ ν΄λμ€ λ³μλ₯Ό μμ±νκ³ μ¬μ©ν μ μμΌλ λ©μλλ₯Ό μμ±νκ³ μ¬μ©ν΄ 보μ. λ©μλλ λ°©κΈ ν¨μμ ννλ‘ μμ±νλ€κ³ μΈκΈνλ€. ν΄λμ€ μλμ def λ₯Ό μ¬μ©νμ¬ ν¨μμ ννλ‘ μ μ₯νλ©΄ λλ€.
λ©μλ μμ± λ¬Έλ²
def λ©μλ μ΄λ¦(self, νλΌλ―Έν°1, νλΌλ―Έν°2, ... ) :
λͺ λ Ήλ¬Έ
οΌ μΈμ€ν΄μ€ λ©μλμ 첫λ²μ§Έ νλΌλ―Έν°λ selfλ‘ μμ±νλ κ²μ΄ κ·μΉ → 첫λ²μ§Έ νλΌλ―Έν°λ‘ μΈμ€ν΄μ€ μμ μ λ£λλ€λ μλ―Έ
λ©μλ μ¬μ© λ°©λ²
β μΈμ€ν΄μ€ μ΄λ¦.λ©μλ μ΄λ¦()
β‘ ν΄λμ€ μ΄λ¦.λ©μλ μ΄λ¦(μΈμ€ν΄μ€ μ΄λ¦)
# μΈμ€ν΄μ€ μ΄λ¦μΌλ‘ νΈμΆνλ λ©μλ(β λ°©λ²) μ¬μ©μ 첫λ²μ§Έ νλΌλ―Έν°λ μλ΅
why? λ©μλ μμ±μ 첫 λ²μ§Έ νλΌλ―Έν° selfλ μΈμ€ν΄μ€ μμ μ μλ―Έ. λ©μλ μ¬μ©μ μΈμ€ν΄μ€ μ΄λ¦μΌλ‘ νΈμΆ ν κ²½μ°, μΈμ€ν΄μ€ μ΄λ¦μ΄ μλμΌλ‘ λ©μλμ 첫λ²μ§Έ νλΌλ―Έν°λ‘ λμ΄κ°κΈ° λλ¬Έ. () μμ νλΌλ―Έν°λ‘ μΈμ€ν΄μ€ μμ μ λ£μ κ²½μ° μ€νλ € μλ¬ λ°μ
ν΄λμ€ μ΄λ¦μΌλ‘ νΈμΆνλ λ©μλ(β‘λ°©λ²) μ¬μ© μμλ νλΌλ―Έν°λ‘ μΈμ€ν΄μ€ μ΄λ¦μ λ£μ΄μ€μΌ ν¨
μλλ say_hello(self)λΌλ λ©μλλ₯Ό μμ±ν μ½λ
μλμ κ°μ΄ say_hello λ©μλλ₯Ό νΈμΆνκ² λλ©΄ μ£Όμμ²λ¦¬λ λΆλΆμ΄ μ½μμ μΆλ ₯
μμμ κ°λ΅νκ² λ©μλ μμ±λ²κ³Ό μ€ν λ°©λ²μ λν΄ μ΄μΌκΈ°νλ€. μ¬μ€, μ§κΈκΉμ§ λ§ν λ©μλλ μΈμ€ν΄μ€ λ©μλλ₯Ό μλ―Ένλ€. κ·Έ λ§μ μ¦, λ©μλμλ μΈμ€ν΄μ€ λ³μ, ν΄λμ€ λ³μμ κ°μ΄ μ’ λ₯κ° μλ€λ λ§μ΄λ€. λ©μλλ ν¬κ² 3κ°μ§λ‘ λΆλ₯νλ€.
λ©μλμ μ’ λ₯
β μΈμ€ν΄μ€ λ©μλ : μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νκ±°λ μ€μ νλ λ©μλ
β‘ ν΄λμ€ λ©μλ : ν΄λμ€ λ³μλ₯Ό μ¬μ©νκ±°λ μ€μ νλ λ©μλ
β’ μ μ λ©μλ : μΈμ€ν΄μ€ λ³μ, ν΄λμ€ λ³μλ₯Ό λͺ¨λ μ¬μ©νμ§ μλ λ©μλ
μμμ μ€λͺ ν μΈμ€ν΄μ€ λ©μλμ λ¬Έλ²μ λ€μ νλ² μ΄ν΄λ³΄μ. say_helloμμλ μΈμ€ν΄μ€ μμ μ νλΌλ―Έν°λ‘ κ°κ³ , μΈμ€ν΄μ€ λ³μμΈ nameκ³Ό ageλ₯Ό μ¬μ©νλ€. μ΄μ²λΌ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νκ±°λ μ€μ νλ λ©μλλ₯Ό μΈμ€ν΄μ€ λ©μλλΌκ³ νκ³ , ν΄λμ€ λ³μμ κ°μ μ½κ±°λ μ€μ νλ λ©μλλ₯Ό ν΄λμ€ λ©μλλΌκ³ νλ€. κ·ΈλΌ μ μ λ©μλλ 무μμΌκΉ? μ μ λ©μλλ μΈμ€ν΄μ€ λ³μλ ν΄λμ€ λ³μ μ€ μ΄λ€ κ²λ μ¬μ©νμ§ μλ λ©μλλ₯Ό λ§νλ€.
ν΄λμ€ λ©μλ
μμ μ½λλ countλΌλ ν΄λμ€ λ³μλ₯Ό μ μν κ²μ΄λ€. countλΌλ ν΄λμ€ λ³μλ₯Ό μ¬μ©νλ ν΄λμ€ λ©μλλ₯Ό λ§λλ λ°©λ²μ μλμ κ°λ€.
@classmethod
der ν΄λμ€ λ©μλ μ΄λ¦(cls):
λͺ λ Ήλ¬Έ
ν΄λμ€ μμμ λ°λ‘ ν¨μλ₯Ό μ μνλ μΈμ€ν΄μ€ λ©μλμλ λ¬λ¦¬ ν΄λμ€ λ©μλλ ν¨μ μ μ μμ @classmethod ν€μλλ₯Ό λ£μ΄μ€μΌ νλ€. λν, μΈμ€ν΄μ€ λ©μλ μ μμ μΈμ€ν΄μ€ μμ μ νλΌλ―Έν°λ‘ λ°μ 첫 λ²μ§Έ νλΌλ―Έν°λ₯Ό selfλΌκ³ νλ κ²μ΄ κ·μΉμ΄μλ κ²μ²λΌ ν΄λμ€ λ©μλ μμ±λ νλΌλ―Έν°λ‘ ν΄λμ€λ₯Ό λ°λλ€λ μλ―Έλ‘ clsλ₯Ό 첫λ²μ§Έ νλΌλ―Έν°λ‘ μμ±νλ€.
β ν΄λμ€ μ΄λ¦.ν΄λμ€ λ©μλ()
β‘ μΈμ€ν΄μ€ μ΄λ¦.ν΄λμ€ λ©μλ()
# ν΄λμ€ λ©μλ μ€νμ ν΄λμ€ μ΄λ¦μΌλ‘ νΈμΆνλ β μ κ²½μ°μ μΈμ€ν΄μ€ μ΄λ¦μΌλ‘ νΈμΆνλ β‘μ κ²½μ° λͺ¨λ νλΌλ―Έν°λ₯Ό μλ΅νλ€. ν΄λμ€ λ©μλμ κ²½μ° μλμΌλ‘ 첫λ²μ§Έ νλΌλ―Έν°λ‘ ν΄λμ€λ₯Ό μ λ¬νκΈ° λλ¬Έμ΄λ©°, β‘μ κ²½μ°μλ ν΄λΉ μΈμ€ν΄μ€λ ν΄λΉ ν΄λμ€λ‘ μμ±λμκΈ° λλ¬Έμ μλμΌλ‘ ν΄λμ€λ₯Ό μ λ¬νλ€.
μ μ λ©μλ
λ§μ§λ§μΌλ‘ μ μ λ©μλλ ν΄λμ€ λ©μλμ κ°μ΄ ν¨μ μμ± μ½λ μμ @staticmethodλ₯Ό μ°λ©΄ λλ€. ν΄λμ€ λ©μλ, μ μ λ©μλμ λν μμΈν λ΄μ©μ μλ 첨λΆλ κ΄λ ¨ λ§ν¬λ₯Ό μ°Έκ³ νκΈΈ λ°λλ€.
λλμ΄ νμ΄μ¬ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ κΈ°λ³Έ κ°λ κΉμ§ μμ보μλ€. λ§μ§λ§μΌλ‘ λ€μ μ²μμΌλ‘ λμκ°λ³΄μ.
νμ΄μ¬μ μμ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄μ΄λ€.
νμ΄μ¬μ νμ©νμ¬ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ ν μ μλ€λ κ²μ μ 리νλ€. κ·Έλ λ€λ©΄ μ νμ΄μ¬μ μμ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄λΌκ³ νλ κ²μΌκΉ?
νμ ν¨μλ₯Ό μ΄μ©νμ¬ μ μ 2μ λ¬Έμμ΄, 리μ€νΈ, λμ λ리, νν, ν¨μκ° μ΄λ€ μλ£νμΈμ§ νμΈν΄ 보μλ€.
μ μ 2λ int ν΄λμ€μ μνκ³ , λ¬Έμμ΄ "string"μ str ν΄λμ€, 리μ€νΈλ list ν΄λμ€ λ±μ΄λΌκ³ μΆλ ₯λλ€. μ¦, μ μ, λ¬Έμμ΄, λμ λ리, νν, ν¨μ λ± νμ΄μ¬μμ μμ±νλ λͺ¨λ λ΄μ©μ μ΄λ ν ν΄λμ€μ μΈμ€ν΄μ€λ€μ΄λ€. λλ intλΌλ ν΄λμ€λ₯Ό λ§λ μ μ΄ μλλ° μ μ΄λ κ² μμ±λ κ±°λ νλ©΄ νμ΄μ¬μ κ°λ°ν κ°λ°μλ€μ΄ κ°λ°μ νλ©΄μ μμ£Ό μ¬μ©ν κ² κ°μ ν΄λμ€λ€μ 미리 λ§λ€μ΄ λμκΈ° λλ¬Έμ΄λ€.
λ§μ½ νμ΄μ¬μμ μ½λλ₯Ό μμ±ν λ 1μ μμ±νλ€λ©΄ int ν΄λμ€λ‘ λ§λ 1μ λνλ΄λ μΈμ€ν΄μ€λ₯Ό μμ±ν κ²μ΄κ³ , λΉλ¬Έμμ΄ ""μ μ λ ₯νλ€λ©΄, str ν΄λμ€λ‘ λ§λ λΉ λ¬Έμμ΄μ λνλ΄λ μΈμ€ν΄μ€λ₯Ό μμ±ν κ²μ΄λ€. ν¨μλ λ§μ°¬κ°μ§μ΄λ€. ν¨μλ₯Ό μ μνλ κ²λ λ€μ functionμ΄λΌλ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ§λλ κ²μ΄λ€.
μ¦, νμ΄μ¬μ μλ λͺ¨λ κ²λ€μ νΉμ ν΄λμ€μ μΈμ€ν΄μ€λ‘ μμ±νλ κ²μ΄κ³ μ΄λ¬ν μ΄μ λλ¬Έμ νμ΄μ¬μ μμ κ°μ²΄ μ§ν₯ μΈμ΄λΌκ³ νλ κ²μ΄λ€.
μ§κΈκΉμ§ μ₯ν©νκ² νμ΄μ¬μ μμ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ λν κΈ°μ΄ λ΄μ©μ μ€λͺ ν΄ λ³΄μλ€. μμΈν μ€λͺ νλ€ λ³΄λ λ°λ³΅λλ λ΄μ©λ λ§κ³ μ€λͺ μ΄ λΆμ‘±ν λΆλΆλ μλ κ² κ°λ€. κ·Έλλ μ΄ κΈμ μμΌλ‘μ¨ μ€μ€λ‘ κ°μ²΄ μ§ν₯μ κ°λ μ λν΄ λ€μ μ 리ν μ μμλ€. μ΄ν 곡λΆνλ λ΄μ©μ λν΄μλ μΆν ν¬μ€ν νμ¬ μ λ¦¬ν΄ λ³΄λλ‘ νκ² λ€.
κ΄λ ¨ λ§ν¬ :