Python 中的方法覆盖

已发表: 2023-01-28

目录

理解方法覆盖的先决条件:

方法覆盖是面向对象编程中最重要的概念之一。 父类中定义的子类中特定功能的实现可以通过方法重写来更改。 方法覆盖可以定义为子类改变其父类之一(称为祖先)提供的方法的执行的能力。 要重写一个函数,类要满足以下条件。

  • 可继承类:无法在类内执行函数覆盖。 从父类派生子类是必要的。
  • 在子类和父类中重新定义的函数的签名应该是相同的。 也就是说,被重写的函数和父类中的函数应该有相同数量的参数和形参。

Python 中的方法覆盖概述:

如前所述,面向对象编程语言的方法覆盖属性,子类通过该属性提供已由其超类之一提供的方法的特定实现。 当子类(子类)中的方法与其超类中的方法具有相同的参数或签名、相同的名称和相同的返回类型或子类型时,则称子类(子类)中的方法覆盖了超类(父类)的方法。

用于调用已执行方法的对象决定了它的版本。 如果使用超类中的对象调用该方法,将执行超类中的版本。 但是,如果一个方法被子类中的对象调用,那么子类的版本将被执行。 换句话说,所引用对象的类型用于确定被覆盖和执行的方法的版本。 重写方法的版本不是由引用变量的类型决定的。

查看 upGrad 的数据科学课程

方法覆盖的好处:

Python 中方法重写的主要优点是,该类为继承的方法提供了一个自己定义的模型,而无需更改父类的代码。 在子类使用具有多个子类的父类的情况下,此功能也很有用。 在这种情况下,父类的方法和参数可以被子类调用,而无需修改父类的代码。

探索我们的热门数据科学课程

IIITB 的数据科学执行研究生课程 商业决策数据科学专业证书课程 亚利桑那大学数据科学硕士
IIITB 的数据科学高级证书课程 马里兰大学数据科学和商业分析专业证书课程 数据科学课程

阅读我们流行的数据科学文章

数据科学职业道路:综合职业指南 数据科学职业发展:工作的未来就在这里 为什么数据科学很重要? 数据科学为企业带来价值的 8 种方式
数据科学对管理者的相关性 每个数据科学家都应该拥有的终极数据科学备忘单 你应该成为数据科学家的 6 大理由
数据科学家的一天:他们做什么? 神话破灭:数据科学不需要编码 商业智能与数据科学:有什么区别?

方法覆盖和方法重载之间的区别

方法覆盖

方法重载

父类和子类中的方法或函数必须具有相同的签名和相同的名称。 函数或方法必须具有相同的名称。 但是,它们的签名不必相同。
这是运行时多态性的一个例子。 这个过程是编译时多态性的一个例子。
继承是 Python 中方法重写的必要条件。 在某些情况下可能需要类的继承。 但是,可能并非在所有情况下都需要。
方法覆盖发生在父类和子类中的方法之间。 但是,它不能发生在一个类中。 方法重载发生在同一个类中的方法之间。
此功能用于更改现有方法的行为。 它用于向方法的行为添加更多内容。
至少需要两个类(一个子类和一个父类)来执行方法覆盖。 不需要额外的类,因为重载发生在同一个类中的方法之间。

如果您想深入了解 Python 中的方法覆盖,我们建议您参加为期 18 个月的数据科学理学硕士课程 upGrad 从 IIIT Bangalore 和 Liverpool John Moore's University 提供这门课程。 该课程教授您统计、使用 Python 进行预测分析、机器学习、数据可视化、大数据分析等技能。 对 Python 概念有深入了解的学生可以很好地处理深度学习、自然语言处理、业务分析和数据工程等主题。

想要分享这篇文章?

为未来的职业做准备

申请数据科学理学硕士