1、封装的含义
例子:手机拨打电话,背后的实现是一个很复杂的流程:
1、手机内部功能实现
2、信号与基站进行交互
3、手机对收到的信号进行解码
4、调用手机听筒,将收到的信号实时解码并转化为音频,实现通话。
但是在实际使用中,使用者只需要输入号码拨打电话就可完成通话。
这就是面对对象封装的概念。所以封装的一大特点:就是将复杂的信息、流程给包起来,内部处理,让使用者只需要通过简单的操作步骤,就能实现。 参考:(https://segmentfault.com/a/1190000018963865?utm_source=tag-newest)
2、封装示例
1、python中封装功能的实现
'''
1.封装:类就是个麻袋,
2.定义私有的,只在类内部使用,外部无法访问(_,__)
3.明确区分内外,内部的实现逻辑,外部无法知晓,并且为封装到内部的逻辑提供一个访问接口给
外部使用。
'''
class People:
# __ :双下划线,这就是在类中封装的语法
__region = "武汉" # _ People__region 实际发生了变形
def __init__(self, name, age):
self.__name = name
self.age = age
def print_info(self):
print('姓名:%s,年龄:%s,地区:%s'%(self.__name,self.age,self.__region))
obj = People('金鞍少年', 18) # 实例化对象并传入参数
print(obj.age) # 结果-- 18
obj.print_info() # 结果-- 姓名:金鞍少年,年龄:18,地区:武汉
print(obj.__region) # 报错:AttributeError: 'People' object has no attribute '__region',证明__region被私有化封装了
print(People.__dict__) # 查看类的属性和方法
# {'__module__': '__main__', '_People__region': '武汉', '__init__': <function People.__init__ at 0x000001541032C160>, 'print_info': <function People.print_info at 0x000001541032C310>, '_People__FindName': <function People.__FindName at 0x0000