π λ€μ΄κ°λ©°
μ΄λ² κΈμμλ OOPμ κ½μΈ ν΄λμ€(class)λ₯Ό λ€λ£¬λ€. Cμ Javaμμ κΈ°λ³Έ μ§μμ μκ³ λ€μ΄μ λΉκ΅μ μμνμ§λ§, μ¬μ ν μ¬μ΄ κ°λ
μ μλλ€.
ν΄λμ€λ? ν¨μμ²λΌ μ½λλ₯Ό μ 리νλ, ν λ° λ λμκ° κ΄λ ¨λ ν¨μμ λ³μλ₯Ό νλλ‘ λ¬Άλλ€. ν΅κ³νΒ·κ²½μ νΒ·μ μΉνμ βμ¬νκ³Όνβμ΄λΌλ ν° μΉ΄ν
κ³ λ¦¬λ‘ λ¬Άλ κ²κ³Ό κ°λ€.
1. ν΄λμ€ μ μμ self
1
2
3
4
5
6
7
| class μ¬νκ³Όν:
def ν΅κ³ν(self):
print("ν΅κ³ν")
def κ²½μ ν(self):
print("κ²½μ ν")
def μ μΉν(self):
print("μ μΉν")
|
π‘ ν΄λμ€ μ ν¨μ(λ©μλ)λ 첫 νλΌλ―Έν°λ‘ selfλ₯Ό κ°λλ€. κ°μ²΄νλμ λ κ·Έ κ°μ²΄ μμ μ΄ λ€μ΄κ°λ μ리λ€. νΈμΆν λλ μλ΅νλ€.
1
2
3
| λ³μ = μ¬νκ³Όν() # κ°μ²΄ν
λ³μ.κ²½μ ν()
# >>> κ²½μ ν
|
π‘ λ³μ1, λ³μ2μ²λΌ κ°μ²΄λ₯Ό μ¬λ¬ κ° λ§λ€λ©΄ λ©λͺ¨λ¦¬μ μλ‘ λ€λ₯Έ 곡κ°μ ν λΉλλ€. 볡μ‘ν΄ λ³΄μ΄μ§λ§, λκ·λͺ¨ νλ‘μ νΈμμ λ€ννλ ν΄λμ€λ₯Ό μ°λ €λ©΄ νμλ€.
2. λ°ν vs μΆλ ₯ λ©μλ
1
2
3
4
5
| class μμ
μκ°:
def μμ 1(self):
return "μ΄λ €μμ" # λ°ν
def μμ 2(self, κ°):
print("μ
λ ₯:", κ°) # μΆλ ₯
|
| λ©μλ | λμ |
|---|
μμ 1() | κ°μ λ°ν β print(μμ 1())μ²λΌ μΆλ ₯ν΄μΌ 보μ |
μμ 2(κ°) | λ΄λΆμμ μ§μ μΆλ ₯ |
3. νλΌλ―Έν°κ° μλ λ©μλ
1
2
3
4
5
6
7
8
9
10
| class μμλ°λ₯Ένμ:
def 첫μΈμ¬(self, μ΄λ¦):
print("μλ
νμΈμ")
print(f"λ΄μ΄λ¦μ {μ΄λ¦}!")
def μλ³μΈμ¬(self):
print("μλ
νκ°μΈμ")
νκΈΈλ = μμλ°λ₯Ένμ()
νκΈΈλ.첫μΈμ¬("μ λν¬") # selfλ μλ, μ΄λ¦λ§ μ λ¬
νκΈΈλ.μλ³μΈμ¬()
|
π‘ λ κ°μ§ νΈμΆ λ°©μμ΄ μλ€.
νκΈΈλ.첫μΈμ¬("μ λν¬") β κ°μ²΄λ‘ νΈμΆ (self μλ)μμλ°λ₯Ένμ.첫μΈμ¬(νκΈΈλ, "μ λν¬") β selfμ κ°μ²΄λ₯Ό μ§μ μ λ¬
4. selfλ‘ κ°μ²΄μ λ³μ λ§λ€κΈ°
1
2
3
4
5
6
7
8
9
10
| class μ¬λ:
def μ΄λ¦μ
λ ₯(self, μ΄λ¦):
self.μ΄λ¦ = μ΄λ¦ # κ°μ²΄ μμ μ λ³μ μμ±
def μΆλ ₯νκΈ°(self):
print(self.μ΄λ¦)
첫째 = μ¬λ()
첫째.μ΄λ¦μ
λ ₯("μ λν¬")
print(첫째.μ΄λ¦)
# >>> μ λν¬
|
π‘ self.μ΄λ¦ = μ΄λ¦μ κ·Έ κ°μ²΄(첫째)κ° κ°μ§ λ³μλ₯Ό λ§λ λ€. κ·Έλμ 첫째.μ΄λ¦μ βμ λν¬βκ° μ μ₯λλ€. κ°μ²΄λ§λ€ λ
립μ μΈ μνλ₯Ό κ°κ² νλ ν΅μ¬μ΄λ€.
π μ 리
1
2
3
4
5
| νμ΄μ¬ ν΄λμ€
ββ μ μ class μ΄λ¦: + λ©μλ(첫 νλΌλ―Έν° self)
ββ κ°μ²΄ν λ³μ = ν΄λμ€() β λ©λͺ¨λ¦¬μ λ
립 곡κ°
ββ self κ°μ²΄ μμ (νΈμΆ μ μλ μ λ¬)
ββ self.λ³μ κ°μ²΄λ§λ€ λ
립μ μΈ μν μ μ₯
|
| κ°λ
| ν μ€ μ μ |
|---|
| ν΄λμ€ | κ΄λ ¨ ν¨μΒ·λ³μλ₯Ό λ¬Άλ ν |
| self | λ©μλκ° κ°λ¦¬ν€λ κ°μ²΄ μμ |
| self.λ³μ | κ°μ²΄ κ³ μ μ μΈμ€ν΄μ€ λ³μ |
νμ΄μ¬ ν΄λμ€μ νΉμ§μ selfλ€. βλ©μλμ 첫 μΈμλ κ°μ²΄ μμ βμ΄λΌλ κ·μΉλ§ μ‘μΌλ©΄, C/Javaμ ν΄λμ€ μ§μμ΄ κ·Έλλ‘ μ΄μ΄μ§λ€.
Comments powered by Disqus.