Guidelines

클래슀 프라이빗(Private) λ³€μˆ˜ μ‚¬μš©λ²•

클래슀의 프라이빗 λ³€μˆ˜(Private Variables)λŠ” 객체의 μΊ‘μŠν™”μ™€ 정보 은닉을 μœ„ν•΄ μ‚¬μš©ν•˜λŠ” μ€‘μš”ν•œ κ°œλ…μž…λ‹ˆλ‹€.

프라이빗 λ³€μˆ˜λŠ” 클래슀 λ‚΄λΆ€μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯ν•œ λ³€μˆ˜λ‘œ, 클래슀 μ™ΈλΆ€μ—μ„œ 직접적인 접근이 μ œν•œλ©λ‹ˆλ‹€.

νŒŒμ΄μ¬μ—μ„œλŠ” λ³€μˆ˜ 이름 μ•žμ— 더블 μ–Έλ”μŠ€μ½”μ–΄(__)λ₯Ό λΆ™μ—¬ 프라이빗 λ³€μˆ˜λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

프라이빗 λ³€μˆ˜ μ‚¬μš© μ˜ˆμ‹œ
class MyClass: def __init__(self): self.__private_var = 10 # 프라이빗 λ³€μˆ˜ def get_private_var(self): # 프라이빗 λ³€μˆ˜ λ°˜ν™˜ λ©”μ†Œλ“œ return self.__private_var obj = MyClass() print(obj.get_private_var()) # 10 좜λ ₯ # print(obj.__private_var) # μΈμŠ€ν„΄μŠ€λ‘œ 직접 μ ‘κ·Όν•˜λ©΄ AttributeError λ°œμƒ

프라이빗 λ³€μˆ˜μ˜ νŠΉμ§•

  • μΊ‘μŠν™” 및 정보 은닉: 클래슀 λ‚΄λΆ€μ˜ κ΅¬ν˜„ μ„ΈλΆ€ 사항을 숨기고, μ™ΈλΆ€λ‘œλΆ€ν„° 데이터λ₯Ό λ³΄ν˜Έν•©λ‹ˆλ‹€.

  • μƒν˜Έμž‘μš© κ°„μ†Œν™”: μ‚¬μš©μžκ°€ 클래슀의 λ‚΄λΆ€ κ΅¬ν˜„μ„ μ•Œ ν•„μš” 없이, 곡개된 λ©”μ†Œλ“œλ₯Ό 톡해 μƒν˜Έμž‘μš©ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.

프라이빗 λ³€μˆ˜ μ‚¬μš© μ˜ˆμ‹œ
class Account: def __init__(self, balance): self.__balance = balance # 프라이빗 λ³€μˆ˜ def deposit(self, amount): if amount > 0: self.__balance += amount return f"μž…κΈˆ μ™„λ£Œ: μž”μ•‘ {self.__balance}원" return "μž…κΈˆ κΈˆμ•‘μ΄ μœ νš¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€." def get_balance(self): return f"ν˜„μž¬ μž”μ•‘: {self.__balance}원" # 클래슀 μ‚¬μš© μ˜ˆμ‹œ account = Account(10000) print(account.deposit(5000)) # 'μž…κΈˆ μ™„λ£Œ: μž”μ•‘ 15000원' 좜λ ₯ print(account.get_balance()) # 'ν˜„μž¬ μž”μ•‘: 15000원' 좜λ ₯ # 프라이빗 λ³€μˆ˜ 직접 μ ‘κ·Ό μ‹œλ„ (였λ₯˜ λ°œμƒ) # print(account.__balance)

이 μ˜ˆμ œμ—μ„œ __balanceλŠ” Account 클래슀의 프라이빗 λ³€μˆ˜μž…λ‹ˆλ‹€. 클래슀 μ™ΈλΆ€μ—μ„œ __balance에 직접 μ ‘κ·Όν•˜λ € ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

λŒ€μ‹  depositκ³Ό get_balance 곡개 λ©”μ†Œλ“œλ₯Ό 톡해 __balance λ³€μˆ˜μ˜ 값을 μ•ˆμ „ν•˜κ²Œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result