学Python编程开发怎样封装的实现方法是什么-创新互联

学Python编程开发怎么样?封装的实现方法是什么?封装,即隐藏对象的属性和实现细节,仅对外公开接口。封装思想在编程工作中非常重要,是每个程序员的基本功。下面千锋小编就给大家讲解一下封装原理及实现方法。

10年积累的网站设计制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有苏仙免费网站建设让你可以放心的选择与我们合作。

学Python编程开发怎样 封装的实现方法是什么

在Python中,“封装”是指将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体(即类)。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。

封装原则有两个:1)将不需要对外提供的内容都隐藏起来;2)把属性都隐藏,提供公共方法对其访问。

注意,封装数据主要原因是保护私隐,将数据隐藏起来不是目的。隐藏起来然后对外提供操作该数据的接口,然后我们可以在接口附加上对该数据操作的限制,以此完成对数据属性操作的严格控制。

封装特性property

将一个类的函数定义成特性以后,对象再去使用的时候obj.name,根本无法察觉自己的name是执行了一个函数然后计算出来的,这种特性的使用方式遵循了统一访问的原则。而property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值。

面向对象的封装有三种方式:

【public】这种其实就是不封装,是对外公开的。

【protected】这种封装方式对外不公开,但对朋友(friend)或者子类(形象的说法是“儿子”,但我不知道为什么大家不说“女儿”,就像“parent”本来是“父母”的意思,但中文都是叫“父类”)公开。

【private】这种封装对谁都不公开。

代码示例:

class Foo:

def __init__(self,val):

self.__NAME=val #将所有的数据属性都隐藏起来

@property

def name(self):

return self.__NAME #obj.name访问的是self.__NAME(这也是真实值的存放位置)

@name.setter

def name(self,value):

if not isinstance(value,str): #在设定值之前进行类型检查

raise TypeError('%s must be str' %value)

self.__NAME=value #通过类型检查后,将值value存放到真实的位置self.__NAME

@name.deleter

def name(self):

raise TypeError('Can not delete')

f=Foo('egon')print(f.name)# f.name=10 #抛出异常'TypeError: 10 must be str'del f.name #抛出异常'TypeError: Can not delete'

Python并没有在语法上把它们三个内建到自己的class机制中,在C++里一般会将所有的所有的数据都设置为私有的,然后提供set和get方法(接口)去设置和获取,在Python中通过property方法可以实现。一个静态属性property本质就是实现了get、set、delete三种方法。

总之,Python开发的前景是非常好的。如果确实不知道怎么办,可以选择专业的学习方式,先去试听看看,只有这样,你才能知道这个学习班是否真正适合你,才能知道你是不是适合学Python技术,才不至于浪费时间、金钱和精力。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

文章题目:学Python编程开发怎样封装的实现方法是什么-创新互联
标题来源:https://www.cdcxhl.com/article20/edjco.html

成都网站建设公司_创新互联,为您提供外贸网站建设网站建设云服务器微信小程序网站维护软件开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设