状课网-少儿编程网课专业平台
各位小伙伴大家好:
上期我们了解了有关类的多重继承,本期我们继续来聊聊面向对象编程的另外一个特性——封装
首先来看一下封装的定义:隐藏类的一些具体实现,通过提供一些接口来实现一些功能,将类的状态信息隐藏在类的外部,不允许在类的外部直接访问,而是通过这个类提供的一些方法来对属性进行操作以及访问。
什么意思呢?来看段代码:
这里我们定义了一个Dog类,但是没写属性。而是写了两个方法:一个SetName方法,用来根据调用时传入的参数来修改属性的值(如果没有属性则创建)。
另一个是GetName方法,前面我们获取属性是直接用类.属性名的方式来获取。但是这里我们是通过GetName方法的返回值来获取。这就起到一定的隐藏属性的作用,实现一定的封装。
为什么说是“一定的”呢?
因为这只是形式上的隐藏,并没有实现真正的封装。来验证一下
在上面的程序中,倒数第三行,我们使用类名修改了属性的值后,成功返回了。也就是说我们还是可以在类外直接进行属性的修改,这与我们上面封装定义相矛盾。
怎么样才能实现真正的封装呢?
只需要对程序做一丁点的修改:
如图,和前面程序的区别仅仅是在属性名name的前面加了两个下划线_ _,这有什么特别的作用吗?
因为在python中以两个下划线开头并且不以两个下划线结尾的属性和方法,被定义为私有方法,不予许在类外直接调用。
从结果也可以看出,这次我们使用wangcai.__name来修改属性的值没有成功,输出的结果还是“旺财”,起到了封装的作用。
但让我感到意外的是python并没有报错,也就是说虽然你修改属性的值失败了(或者说这行代码没有起作用),但是python却没有告诉你。
到目前为止,有关python的基础知识就大致上为大家过了一遍,接下来预计会通过几个小项目来巩固我们所学的知识。
文章来源:创客编程小屋
现在计算机技术发展的越来越快,我们的生活也越来越离不开计算机了,现在有很多的家长会选择让自己的小孩,从小就接受编程教育,但是编程教育并不只是为了让孩子能够拥有编
132021-04-27 22:11:55
学习编程对于孩子来说是十分有好处的,不仅能够提高孩子解决问题的能力,并且还能够提高孩子的逻辑思维能力。孩子的动手能力也会得到增强,家长可能想让自己的孩子去学习编程
112021-04-27 22:14:08
现在我们都知道少儿编程变得越来越热门,有很多的家长,让自己的孩子去学习少儿编程,有的家长可能自己都不清楚,少儿编程是学什么的,那么今天就让我们一起来了解一下
122021-04-27 22:16:18
由于编程在未来可能是一项存活的专业技能,如同安全驾驶,英文一样,很普遍,很常见。可青少年儿童为何要学习培训 Python编程呢?由于以下几个方面缘故
112021-04-28 15:22:44
有的家长对少儿编程不是特别了解,他们可能想知道少儿编程学c还是python,其实这个问题要根据具体的情况来进行具体的分析。
122021-04-28 16:16:56