μΊ‘μνλ‘ μμ±κ³Ό λ©μλλ₯Ό νλλ‘ λ¬Άλ λ°©λ²
μΊ‘μν(Encapsulation)
λ κ°μ²΄μ λ°μ΄ν°(μμ±)μ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λ©μλλ₯Ό νλλ‘ λ¬Άλ κ²μ λ§ν©λλ€.
μ΄λ₯Ό ν΅ν΄ κ°μ²΄ λ΄λΆμ μΈλΆ ꡬνμ μ¨κΈ°κ³ , μΈλΆμ μλͺ»λ μ κ·ΌμΌλ‘λΆν° λ°μ΄ν°λ₯Ό 보νΈν μ μμ΅λλ€.
νμ΄μ¬μμλ μΊ‘μνλ₯Ό ꡬννκΈ° μν΄ μμ± μ΄λ¦ μμ __
λ₯Ό λΆμ¬μ private μμ±
μΌλ‘ λ§λ€ μ μμ΅λλ€.
class ClassName: # μμ±μ def __init__(self): # private μμ± self.__private_attr = 0
μ μ½λμμ __private_attr
λ private μμ±μΌλ‘, ν΄λμ€ μΈλΆμμ μ§μ μ κ·Όν μ μμ΅λλ€.
private μμ±μ μ μν λλ λ°μ€(_
)μ 2κ° μ¬μ©νλ κ²μ΄ κ΄λ‘μ
λλ€.
μΊ‘μνμ μν
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μΊ‘μνλ λ€μκ³Ό κ°μ μν μ ν©λλ€.
-
μΈν°νμ΄μ€ μ 곡
: μΈν°νμ΄μ€(Interface)λ μλ‘ λ€λ₯Έ μμ€ν μ΄λ κ°μ²΄ κ°μ μνΈ μμ©μ μν μ μ μ λ»ν©λλ€. μΊ‘μνλ₯Ό ν΅ν΄ κ°μ²΄ λ΄λΆκ° μ΄λ»κ² λμνλμ§ μ νμ μμ΄, μ 곡λ λ©μλλ₯Ό ν΅ν΄ κ°μ²΄μ μνΈμμ©ν μ μμ΅λλ€. -
λ°μ΄ν° 보νΈ
: κ°μ²΄μ μ€μν λ°μ΄ν°λ₯Ό μΈλΆμ μλͺ»λ μ κ·ΌμΌλ‘λΆν° μμ νκ² λ³΄νΈν©λλ€.
μΊ‘μν μ¬μ© μμ
μλ μ½λ μμλ μν κ³μ’λ₯Ό νννλ Account
ν΄λμ€λ₯Ό μ μνκ³ , μΊ‘μνλ₯Ό ν΅ν΄ κ³μ’μ μμ‘μ μμ νκ² κ΄λ¦¬ν©λλ€.
class Account: def __init__(self, balance): # private μμ± self.__balance = balance # μ κΈ λ©μλ def deposit(self, amount): if amount > 0: self.__balance += amount return "μ κΈ κΈμ‘μ΄ μ ν¨νμ§ μμ΅λλ€." # μμ‘ νμΈ λ©μλ def get_balance(self): return f"νμ¬ μμ‘: {self.__balance}μ" # κ³μ’ μμ±, μ΄κΈ° μμ‘ 10000μ account = Account(10000) # 5000μ μ κΈ account.deposit(5000) # μμ‘ νμΈ print(account.get_balance())
μ΄ μμ μμ __balance
λ private λ³μλ‘ μ€μ λμ΄ μΈλΆμμ μ§μ μ κ·Όν μ μμ΅λλ€.
λμ deposit
κ³Ό get_balance
λ©μλλ₯Ό ν΅ν΄ μ΄ λ³μλ₯Ό μμ νκ² μ‘°μνκ±°λ νμΈν μ μμ΅λλ€.
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μΊ‘μν
λ κ°μ²΄ λ΄λΆμ μΈλΆ ꡬνμ 곡κ°ν μνλ‘ λλ κ²μ μλ―Ένλ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result