面向对象的Python:何为对象?

健谈始于戊戌年
2022-05-19

在面向对象的程序设计中,类是一系列的对象,对象属于某一个类。对象是某一个类具体特征的化身。这个听起来简单。下面,我们还要具体介绍一下。

如前文所述,类分层级。这句话有两层含义。一方面,它表明某一个类对应的对象也同时属于超级类(或者父类)。另一方面,某一个属于父类的对象,却不属于子类。

例如,私家车属于轮式交通工具。而轮式交通工具却不一定是私家车。它也可能是卡车或者自行车。同样,宠物猫属于家养哺乳动物类。这就意味着宠物猫也属于动物。可见,每一个子类比父类更具体。或者反过来说,每一个父类比子类更宽泛。

这里有一点需要说明:我们目前的假设是某一个类只有一个父类。其实,某一个类可以有不止一个父类。我们在后面还会对此进行解释。

我们要重点介绍一下面向对象程序设计中的一个重要概念:继承。任何对象都属于某一个级别的类,并且从其父类中继承相关特征。对象所属的类可以定义新的特征。它的子类又会继承这些特征。这个规则对于交通工具的分类,动物的分类,以及我们面向对象程序设计的类都是相同的。

在面向对象程序设计中,每个对象都包括下面三个特征:

  • 名称(Name):每个对象都要有一个名字。而且在其命名空间(namespace)内,这个名字要唯一。这和我们对人的称呼类似。假如你的同事中有一个人姓王,尽管他年轻,你也可以叫他老王。但是如果有两个人姓王,那就不能都叫老王了。解决办法是一个叫老王,一个叫小王。这就是所谓明明要唯一。

  • 属性(Property):每个对象有一系列的特征。这些特征使其有别于其他对象。

  • 行为(Activity):每个对象都会有一些行为。例如改变对象本身,或者改变别的对象。

这样讲可能还是比较抽象。有一个小窍门可以用来识别这三个特征。通过观察词的类别,可以判断对象的特征。一般来说,

  • 如果是名词,那么就是对象的名称

  • 如果是形容词,那么就是对象的属性

  • 如果是动词,那么就是对象的行为

举例来说,如果我们看到“飞奔地红色汽车”这样一句话,那么就有下面的关系

  • 名称:汽车

  • 属性:颜色(红色)

  • 行为:奔(而且是飞奔)

免责声明:上述内容仅代表发帖人个人观点,不构成本平台的任何投资建议。

精彩评论

我们需要你的真知灼见来填补这片空白
发表看法