封装(python 工程系列)

封装是面向对象编程的三大特征之一

1、封装的作用

1.1、隔离复杂性

将数据(属性)和行为(方法)包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。这样,无序关心方法内部的具体实现细节,从而隔离了复杂度。在编程语言中,对外提供接口。

比如可以写一个处理数据并将数据自动入库的类,这就是一个功能,下次有这个需求的时候就可以直接调用这个类。

1.2、保护隐私:

在类对象的内部通过访问控制把某些属性和方法隐藏起来,不允许在类对象的外部直接访问,而是在类对象的内部对外提供公开的接口方法(例如getter和setter)以访问隐藏的信息。这样,就对隐藏的信息进行了保护。

控制访问指的是:控制类对象的属性和方法在类对象的外部是否可以直接访问。

如果在类对象的某个属性或方法前添加两个下划线__,那么在类对象的外部就不能直接访问该属性或方法

控制访问之双下划线

之所以不能在类对象的外部直接访问以双下划线开头的属性或方法,是因为:Python解释器对外把属性或方法__xxx改成了另外的名字:_类名__xxx。所以,在类对象的外部仍然可以通过_类名__xxx访问属性或者方法__xxx。但是强烈建议不要这样访问,因为不同版本的Python解释器可能会把属性或方法__xxx改成不同的名字。

双下划线外部访问方式

可以直接在类对象的外部直接绑定名为__xxx的属性和方法,这与在类对象名为__xxx的属性和方法是不同的。

除了在类对象的属性和方法前添加两个下划线__,还可以在类对象的属性和方法前添加单下划线_,这样表示在类对象的外部可以直接访问属性和方法,但是不建议这样做。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容