美文网首页
[Python]关于面向对象(封装)

[Python]关于面向对象(封装)

作者: 岁月神偷_bde8 | 来源:发表于2017-09-05 20:48 被阅读0次

    封装:将一堆零碎的东西封箱装起来!

    1.什么是封装?

    封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。该逻辑单元负责将所描述的属性隐藏起来,外界对客体内部属性的所有访问只能通过提供的用户接口实现。这样做既可以实现对客体属性的保护作用,又可以提高软件系统的可维护性。只要用户接口不改变,任何封装体内部的改变都不会对软件系统的其他部分造成影响。结构化设计方法没有做到客体的整体封装,只是封装了各个功能模块,而每个功能模块可以随意地对没有保护能力客体属性实施操作,并且由于描述属性的数据与行为被分割开来,所以一旦某个客体属性的表达方式发生了变化,或某个行为效果发生了改变,就有可能对整个系统产生影响。

    2.如何实现封装?

    例如:

    # 定义了一个商品类型,封装和商品有关系的数据

    class Goods:

    def __init__(self, name, price, stock):

    self.name = name

    self.price = price

    self.stock = stock

    #封装具体的数据到对象中:对象是通过类型来封装具体的数据的

    g1 = Goods(“连衣裙”, 199, 120)# 将对象敏感的数据,封装在类的内部,不让外界直接访问;而是通过定义的set/get方法来间接访问内部的数据的过程,此时,就可以在set/get方法中,添加条件限制代码!

    例如:

    class Person:

             def__init__(self, name, age):

                      self.__name = name

                      self.__age = age

             def set_name(self, name):

                      self.__name = name

             def get_name(self):

                      returnself.__name

             def set_age(self, age):

                      if age >= 0 and age <= 100:

                                self.__age = age

                      else:

                                print("设置的年龄不合法...")

            def get_age(self):

                       returnself.__age

            def__str__(self):

                       return"姓名:%s;年龄:%s"% (self.__name,self.__age)

    3.封装实现的步骤

    1.完成一个类的定义

    2.所有属性私有化

    3. 给每个属性提供set/get方法

    相关文章

      网友评论

          本文标题:[Python]关于面向对象(封装)

          本文链接:https://www.haomeiwen.com/subject/wkypjxtx.html