0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python中类继承的基本规则

科技绿洲 来源:技术理科直男 作者:技术理科直男 2023-09-20 14:24 次阅读

继承规则

与其他基于类的语言一样,可以通过继承组合多个类定义。 类定义可以扩展(或继承)多个其他类。这些类又可以扩展其他类。

请注意,类不能继承 Python 中定义的类(即 .py 文件中包含的类定义),反之亦然。

以下小节提供了中类继承的基本规则。

继承顺序

使用以下继承顺序规则:

  1. 默认情况下,如果在多个超类中定义了给定名称的类成员,则子类将从超类列表中最左边的类中获取定义。
  2. 如果类定义包含 Inheritance = right,则子类从超类列表中最右侧的类中获取定义。

由于历史原因,大多数类都包含 Inheritance = right

主要的超类

任何扩展其他类的类都有一个主要超类。

无论类使用哪种继承顺序,主超类都是第一个,从左到右阅读。

对于任何类级编译器关键字,给定类使用其主超类中指定的值。

对于持久化类来说,主超类尤其重要。

最具体的类型类Most-Specific Type Class

尽管一个对象可以是属于多个类extent的实例(例如各种超类的extent),但它始终具有最特定的类型类 (MSTC)。当该对象是该类的实例但不是该类的任何子类的实例时,类是该对象的最具体类型。

重写方法

类从其一个或多个超类继承方法(类方法和实例方法),可以覆盖这些方法。如果这样做,必须确保方法定义中的签名与要重写的方法的签名匹配。子类方法的每个参数必须使用与超类方法的参数相同的数据类型,或者该数据类型的子类。但是,子类中的方法可以指定超类中未定义的其他参数。

可以使用 Python 方法覆盖以 ObjectScript 编写的方法,反之亦然,只要方法签名匹配即可。

在子类的方法中,可以引用它在超类中重写的方法。要在 ObjectScript 中执行此操作,请使用 ##super() 语法。例如:

//overrides method inherited from a superclass
Method MyMethod() [ Language = objectscript ]
{
  //execute MyMethod as implemented in the superclass
  do ##super()
  //do more things....
}

注意:##super 不区分大小写。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48617
  • 数据类型
    +关注

    关注

    0

    文章

    227

    浏览量

    13498
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83467
收藏 人收藏

    评论

    相关推荐

    Python多重继承使用方法

    继承是面向对象编程的一个重要方式,通过继承,子类可以扩展父的功能,Python也具有该特性,除此之外,Python还可以使用多重
    发表于 04-19 14:41

    Python与C#对比

    、private、internal、protected、protectedinternal等的访问修饰符;7. Python没有interface,其只能继承,同时其还支持多继承,而
    发表于 05-14 17:14

    3分钟看懂Python面向对象

    个Interface,但最多继承自一个)。多重继承机制有时很好用,但是它容易让事情变得复杂。多态多态意味着可以对不同的对象使用同样的操作,但它们可能会以多种形态呈现出结果。在Python
    发表于 06-08 14:20

    【微信精选】C++的精髓继承就该这么理解!

    的公有成员。C++继承 以下例子:定义了一个基base,定义了一个子类sum,子类继承了基base,#include class su
    发表于 08-15 09:41

    如何使用Python? 优势有哪些?

    。  如何使用Python?  1.在Python,定义是通过class关键字来实现的:  class Student(object
    发表于 07-30 18:08

    Python方法、实例方法和静态方法?

    Python实例属性和实例方法Python类属性和方法Python
    发表于 11-05 06:25

    C++ 多继承 虚基分享

    /details/1027495131.多继承派生有多个基或者虚基,同一个不能多次作为某个派生
    发表于 07-02 06:54

    浅析多继承派生的虚基

    继承派生与基有何关系?多继承派生与虚基有何关系?
    发表于 09-30 06:26

    python的理解与使用

    Animal():...# 第二种写法class Animal(object):...因为在 Python 3 ,无论你是否显示继承自 object,Python 解释器都会默认你
    发表于 03-07 16:51

    python继承

    python继承继承,跟人类繁衍的关系相似。被继承
    发表于 03-08 16:40

    python的多态和的property属性

    property ,其实是 Python 中一个内置的装饰器,它可以在新式把一个函数 改造 成属性。当你读取属性值时,会进入被 property 装饰的函数。当你对属性进行赋值时,会进入被 @xx.setter 装饰的函数
    发表于 03-09 16:38

    python类的继承详解

    python类的继承 类的继承,跟人类繁衍的关系相似。 被继承的类称为基类(也叫做父类),继承而得的类叫派生类(也叫子类),这种关系就像人类
    的头像 发表于 03-08 16:40 2818次阅读

    Python到底是如何实现继承的呢

    简单地说,在python中,新建的类可以继承一个或者多个类。父类又可以称为基类或者超类,新建的类称为派生类或者子类。
    的头像 发表于 08-18 15:46 2003次阅读
    <b class='flag-5'>Python</b>到底是如何实现<b class='flag-5'>继承</b>的呢

    网络工程师学Python-继承概念介绍

    Python 中,继承是一种重要的面向对象编程概念。通过继承,我们可以定义一个新的类,它继承了现有类的属性和方法。
    的头像 发表于 04-20 16:56 316次阅读

    Python中的继承详解

    Python 中,继承是一种重要的面向对象编程概念。通过继承,我们可以定义一个新的类,它继承了现有类的属性和方法。这种代码重用可以使我们更高效地编写程序,并提高代码的可读性和可维护
    的头像 发表于 04-20 16:56 944次阅读