ν°μ€ν 리 λ·°
πβ¬ κ°μ²΄μ§ν₯μ μ΄ν΄
κ°μ²΄μ§ν₯μ μμμ : μ μ¬μ±
π κ°μ²΄μ§ν₯ κ°λ
β¨ κ°μ²΄-κ°μ²΄ μ¬μ΄ μνΈμμ©μΌλ‘ νλ‘κ·Έλ¨ κ΅¬μ±νλ νλ‘κ·Έλλ° ν¨λ¬λ€μ
β¨ νλ‘κ·Έλ¨μ μ μ°νκ², λ³κ²½μ μ½κ² λ§λ€μ΄ λκ·λͺ¨ μννΈμ¨μ΄ κ°λ°μ μ¬μ©
• κ°μ²΄μ§ν₯ ν¨λ¬λ€μμ νΉμ§
β μΆμν
곡ν΅μ μμ±μ΄λ κΈ°λ₯ λμΆ
β μΊ‘μν
λ°μ΄ν° ꡬ쑰μ λ°μ΄ν° μ°μ°μ κ²°ν©
β μμ
μμ κ°λ
νΉμ§μ΄ νμ κ°λ
μ μ λ¬
β λ€νμ±
μ μ¬ κ°μ²΄μ μ¬μ©μ±μ κ·Έλλ‘ μ μ§
π κ°μ²΄μ ν΄λμ€
β¨ κ°μ²΄ : μΆμνμ μΊ‘μνμ κ²°κ³Ό
• μ€μΈκ³ μ¬λ¬Όμ λν μν (λ°μ΄ν°) μ μ°μ° (λ©μλ) λ₯Ό ννν λ¨μ
β¨ λ©€λ²(λ°μ΄ν° νλ, λ©μλ)λ ν΄λμ€μ μν΄ κ²°μ
π ν΄λμ€ μ μ
// ν΄λμ€ μ΄λ¦μ λλ¬Έμ μμ κΆκ³
β ꡬ문 νμ
β λ©μλ (method)
β’ κ°μ²΄μ λν νλ(μ°μ°) μ μ
β’ ν¨μμ μ μ λ° μ¬μ© λ°©λ²κ³Ό λμΌ
β μ΄κΈ°μ (initializer)
β’ κ°μ²΄μ μνλ₯Ό μ΄κΈ°ννλ νΉμ λ©μλ
β’ νμ __init__ μΌλ‘ λͺ
λͺ
π λ©μλ μ μ
β ꡬ문 νμ
β self λ§€κ°λ³μ
β’ λͺ¨λ λ©μλμ 첫 λ²μ§Έ λ§€κ°λ³μ
β’ λ©μλμ ꡬνμ μ¬μ© / λ©μλ νΈμΆ μ μ¬μ©λμ§ μμ
β’ κ°μ²΄ μμ μ μ°Έμ‘°νμ¬ ν΄λμ€ μ μμ ν¬ν¨λ λ©€λ²μ μ κ·Ό μ μ¬μ©
( ν΄λμ€ λ΄λΆμ λ³μμ μ κ·Όν λ 'λ°μ΄ν° νλ' μμ μλ €μ£Όλ self )
π self λ§€κ°λ³μ
class Cone :
def __init__(self, radius = 20, height = 30) :
self.r = radius
self.h = height
def get_vol(self) :
return 1/3 * 3.14 * self.r ** 2 * self.h
def get_surf(self) :
return 3.14 * self.r ** 2 + 3.14 * self.r * self.h
β¨ self.r / self.h λ‘ selfλ₯Ό λΆμμΌλ‘μ¨ λ λ³μμ μ€μ½νκ° Cone class μ μμ΄ λ¨
β λ§μ½ selfλ₯Ό λΆμ΄μ§ μλλ€λ©΄?
class Cone :
def __init__(self, radius = 20, height = 30) :
r = radius
h = height # rκ³Ό hμ μ€μ½νλ ν΄λΉ λ²μ νμ
def get_vol(self) :
return 1/3 * 3.14 * r ** 2 * h
def get_surf(self) :
return 3.14 * r ** 2 + 3.14 * r * h
π ν΄λμ€ μ€κ³
β¨ UML ν΄λμ€ λ€μ΄μ΄κ·Έλ¨ ν΅ν΄ λ°μ΄ν°νλ, μμ±μ, λ©μλ νν λ°©λ² νμ€ν
(UML : νμ€νλ λͺ¨λΈλ§ μΈμ΄)
• λ°μ΄ν° νλ μ΄λ¦ : λ°μ΄ν° νλ νμ
• ν΄λμ€ μ΄λ¦ (λ§€κ°λ³μ μ΄λ¦ : λ§€κ°λ³μ νμ )
• λ©μλ μ΄λ¦ (λ§€κ°λ³μ μ΄λ¦ : λ§€κ°λ³μ νμ ) : λ°νκ° νμ
β UML ν΄λμ€ λ€μ΄μ΄κ·Έλ¨
Cone |
r : int h : int // λ°μ΄ν° νλ, νμ |
Cone(radius = 20 : int, height = 30 : int)γ// μμ±μ get_vol() : floatγ// λ©μλ get_surf() : float γ// λ©μλ |
π BMI κ³μ° νλ‘κ·Έλ¨
class BMI :
def __init__(self, name, age, weight, height) :
# μ
λ ₯ νλΌλ―Έν°μ λ€μ΄μ¨ κ°λ€μ λ°μ΄ν° νλμ λ£μ΄μ£Όλ μμ
self.name = name
self.age = age
self.weight = weight
self.height = height
def get_BMI(self) :
return self.weight / (self.height / 100) ** 2
# self.height / 100 μ cm λ¨μ ν€λ₯Ό m λ¨μλ‘ λ³ννκΈ° μν¨
def get_status(self) :
BMI = self.get_BMI()
if BMI >= 25 :
return "λΉλ§"
elif BMI >= 23 and BMI < 25 :
return "과체μ€"
elif BMI >= 18.5 and BMI < 23 :
return "μ μ"
else :
return "μ 체μ€"
πβ¬ ν΄λμ€μ μΈμ€ν΄μ€
π κ°μ²΄μ μΈμ€ν΄μ€
β ꡬ문 νμ
β’ κ° μ μ₯, λ³ν λ± κ°λ₯ (μ€μ²΄νλ λμ)
• ν΄λμ€μ μμ±μ(constructor)λ₯Ό ν΅ν΄ ν΄λμ€μ μΈμ€ν΄μ€ μμ±
• κ°μ²΄ / μΈμ€ν΄μ€ λμΌ κ°λ
• ν΄λμ€μ μμ±μλ ν΄λμ€ μ΄λ¦κ³Ό λμΌ
• ν΄λμ€ μ΄λ¦ + μ΄κΈ°μμ λ§€κ°λ³μ μ¬μ©νμ¬ μμ±μ νΈμΆ
π κ°μ²΄μ μμ± κ³Όμ
π κ°μ²΄μ μ¬μ©
• κ°μ²΄μ λ°μ΄ν° νλ μ κ·Ό λ° λ©μλ νΈμΆ
β¨ κ°μ²΄ λ©€λ² μ κ·Ό μ°μ°μ " . " μ¬μ©
β κ°μ²΄ μ κ·Ό
β’ μμ±μλ λ©λͺ¨λ¦¬ λ΄λΆμ κ°μ²΄λ§ λ§λ¦
β’ λ©λͺ¨λ¦¬ μμ κ°μ²΄λ₯Ό μ§μΉνκΈ° μν΄ κ°μ²΄ μ°Έμ‘°λ³μ μ¬μ©
• κ°μ²΄ μ°Έμ‘°λ³μ
μμ±μλ₯Ό ν΅ν΄ λ§λ κ°μ²΄μ μ κ·Όν μ μλ μ§μΉ λꡬ
β¨ κ°μ²΄ μ°Έμ‘°λ³μλ₯Ό μ¬μ©ν΄ κ°μ²΄λ₯Ό μμ±
π μλΏ ν΄λμ€ νμ©
Cone |
r : int h : int // λ°μ΄ν° νλ, νμ |
Cone(radius = 20 : int, height = 30 : int)γ// μμ±μ get_vol() : floatγ// λ©μλ get_surf() : float γ// λ©μλ |
β« λ¨μ μλΏκ³Ό λ°μ§λ¦κ³Ό λμ΄κ° κ°κ° 50, 100μΈ
μλΏμ λΆνΌμ κ²λμ΄λ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨
# κ°μ²΄ μ°Έμ‘°λ³μ = ν΄λμ€λͺ
(μ΄κΈ°μ νλΌλ―Έν°)
unit_cone = Cone()
big_cone = Cone(50, 100)
print("λ¨μ μλΏμ λΆνΌμ κ²λμ΄λ", unit_cone.get_vol(), unit_cone.get_surf(), "μ
λλ€.")
print("ν° μλΏμ λΆνΌμ κ²λμ΄λ", big_cone.get_vol(), big_cone.get_surf(), "μ
λλ€.")
π BMI ν΄λμ€ νμ©
person1 = BMI("μ§λ", 29, 50, 160)
print(person1.name + "λ(" + str(person1.age) + "μΈ)μ BMI μμΉλ",
person1.get_BMI(), "κ²°κ³Όλ", person1.get_status(), "μ
λλ€.")
πβ¬ κ°μ²΄μ§ν₯μ νμ©
π λ°μ΄ν° νμ κ³Ό κ°μ²΄
β¨ μ€μ μ°λ¦¬κ° μμλ λͺ¨λ λ³μλ κ°μ²΄
κ°μ²΄ μ§ν₯ν νλ‘κ·Έλλ° μΈμ΄μμ
"λͺ¨λ κ²μ λ€ κ°μ²΄λ₯Ό ν΅ν΄ μ΄λ£¨μ΄μ§λ€"
β¨ number λ³μλ int 20 κ°μ²΄λ₯Ό κ°λ¦¬ν΄
β¨ symbol λ³μλ str "νμ΄μ¬" κ°μ²΄λ₯Ό 카리ν΄
β κ°μ²΄λ‘ μ‘°μ/μ°μ°μ νκ³ μΆλ€λ©΄ κ°μ²΄ μ°Έμ‘°λ³μμ μ ( . ) μ°κΈ°
π str λ©μλ
λ©μλ | μ€λͺ |
upper(), lower() | λ / μλ¬Έμ λ³κ²½ |
title() | κ° λ¨μ΄ 첫 κΈμ λλ¬Έμλ‘ λ³κ²½ |
strip(), rstrip(), lstrip() | μμͺ½ / μΌμͺ½ / μ€λ₯Έμͺ½ νΉμ λ¬Έμ μ κ±° |
replace() | λ¬Έμμ΄ νΉμ λΆλΆμ λ체 |
split() | ꡬλΆμλ‘ λΆν ν΄ λ¦¬μ€νΈλ‘ λ°ν |
π λ°μ΄ν° νλ κ°μΆκΈ°
β¨ λ°μ΄ν° μλ (data hiding)
• λ°μ΄ν° νλ μ§μ λ³κ²½ λ°©μ§λ₯Ό μν΄ μ¬μ©μμ μ§μ μ κ·Ό μ°¨λ¨
• publicκ³Ό λ€λ₯Έ private λ°μ΄ν° νλλ‘ μ μ
β private λ°μ΄ν° νλ
• ν΄λμ€ λ΄λΆμμλ§ μ κ·Ό κ°λ₯
• μ λ λ°μ€ ( _ _ ) λ‘ μ μ
self.__r
self.__h
π μ κ·Όμμ λ³κ²½μ
β¨ privateμΌλ‘ μ μλ λ°μ΄ν° νλλ κ°μ²΄ μΈλΆμμ μ κ·Ό λΆκ°λ₯
β¨ private λ°μ΄ν° νλμ μ κ·Όνλ λ©μλ
• μ κ·Όμ (accessor) : λ°μ΄ν° νλ λ°ν (get)
• λ³κ²½μ(mutator) : λ°μ΄ν° νλ μ€μ (set)
π μλΏ ν΄λμ€ κ°μ
λ¬Έμ : λ©€λ² r λλ hμ μμλ₯Ό μ λ ₯νλ©΄?
β¨ λ©€λ² __rκ³Ό __hμ λν μ κ·Όμ, λ³κ²½μ μ μ
class pCone :
def __init__(self, radius = 20, height = 30) :
if (radius > 0 and height > 0) :
self.__r = radius
self.__h = height
def get_vol(self) : # λΆνΌ
return 1/3 * 3.14 * self.__r ** 2 * self.__h
def get_surf(self) : # κ²λμ΄
return 3.14 * self.__r ** 2 + 3.14 * self.__r * self.__h
# μ κ·Όμ
def get_radius(self) :
return self.__r
def get_height(self) :
return self.__h
# λ³κ²½μ
def set_radius(self, radius) :
# μμ κ°μ΄ λ€μ΄μ€μ§ μλλ‘ μ μ΄
if (radius > 0) :
self.__r = radius
def set_height(self, height) :
if (height > 0) :
self.__h = height
'π«π' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Cνλ‘κ·Έλλ°] 11. ꡬ쑰체μ 곡μ©μ²΄ β (0) | 2024.05.08 |
---|---|
[νμ΄μ¬νλ‘κ·Έλλ°κΈ°μ΄] 11. λͺ¨λ (0) | 2024.05.06 |
[Cνλ‘κ·Έλλ°] 10. λ°°μ΄κ³Ό ν¬μΈν° β’ (1) | 2024.05.02 |
[Cνλ‘κ·Έλλ°] 09. λ°°μ΄κ³Ό ν¬μΈν° β‘ (1) | 2024.05.01 |
[Cνλ‘κ·Έλλ°] 08. λ°°μ΄κ³Ό ν¬μΈν° β (1) | 2024.05.01 |