封装(Encapsulation)是面向对象编程(OOP)的四大基本特性之一,其他三个是继承、多态和抽象。封装是指将数据(属性)和操作数据的方法(函数)结合在一个类中,从而隐藏对象的内部实现细节,只暴露必要的接口给外部使用。
封装的建立方法主要包括以下几个步骤:
- 定义类: 首先,需要定义一个类,类中包含属性(变量)和方法(函数)。
```python class MyClass: def init(self, x): self.x = x # 属性
def get_x(self): # 方法
return self.x
``
2. 私有属性:
在Python中,可以通过在属性名前加两个下划线(
__`)来表示该属性为私有。这样,Python解释器会对其进行名称改写(name mangling),使其在类的外部更难直接访问。
```python class MyClass: def init(self, x): self.__x = x # 私有属性
def get_x(self): # 方法
return self.__x
``` 3. 公有方法: 提供公有的方法来访问和修改私有属性。这些方法可以控制对属性的访问和修改,从而实现封装。
```python class MyClass: def init(self, x): self.__x = x # 私有属性
def get_x(self): # 公有方法
return self.__x
def set_x(self, value): # 公有方法
if isinstance(value, int) and value >= 0:
self.__x = value
else:
print("Invalid value")
``` 4. 使用类: 创建类的实例,并通过公有方法访问和修改属性。
```python obj = MyClass(10) print(obj.get_x()) # 输出:10
obj.set_x(20) print(obj.get_x()) # 输出:20 ``` 通过以上步骤,我们成功地将数据和操作数据的方法封装在一个类中,并隐藏了对象的内部实现细节。这样,外部代码只能通过提供的接口与对象进行交互,而不能直接访问对象的内部状态。