python基础:面向对象-封装

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
  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值