ホームページ >バックエンド開発 >Python チュートリアル >カプセル化とは何ですか?また、Pythonで重要なのはなぜですか?
カプセル化は、オブジェクト指向プログラミング(OOP)の4つの基本原則の1つであり、抽象化、継承、および多型です。 本質的に、カプセル化は、単一のユニット(通常はクラス)内でそのデータで動作するデータ(属性)とメソッド(関数)をバンドルします。 このバンドルは、外の世界からオブジェクトの内部の詳細を隠し、制御されたインターフェイスのみを公開します。 カプセルのように考えてください - 外側を見て、特定の方法で対話することができますが、内部の内容を見たり直接操作したりしません。 カプセル化は、いくつかの重要な利点を促進します:
<code class="python">class BankAccount: def __init__(self, account_number, initial_balance): self.__account_number = account_number # Private attribute self.__balance = initial_balance # Private attribute def get_balance(self): return self.__balance def deposit(self, amount): if amount > 0: self.__balance += amount return f"Deposited ${amount}. New balance: ${self.__balance}" else: return "Invalid deposit amount." def withdraw(self, amount): if 0 < amount <= self.__balance: self.__balance -= amount return f"Withdrew ${amount}. New balance: ${self.__balance}" else: return "Insufficient funds or invalid withdrawal amount." # Example usage account = BankAccount("1234567890", 1000) print(account.get_balance()) # Accessing balance through getter method print(account.deposit(500)) print(account.withdraw(200)) #print(account.__balance) # This will raise an AttributeError because __balance is private. Trying to directly access it outside the class is prevented.</code>
__account_number
および__balance
はプライベート属性です。 二重のアンダースコアプレフィックス(__
)は名前のマングリングを実装し、クラスの外部からアクセスしにくくします。 アクセスと修正は、get_balance
、deposit
、およびwithdraw
メソッドを介して制御されます。 これにより、バランスの直接操作が防止され、データの整合性が確保され、偶発的なエラーが防止されます。 また、この方法は、ビジネスルールを実施します(たとえば、マイナス量の残高または預金を超える引き出しを防ぐ)。 これは、カプセル化がデータ保護、コード組織、および保守性を改善する方法を示しています。
以上がカプセル化とは何ですか?また、Pythonで重要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。