Python 中的方法覆盖
已发表: 2023-01-28目录
理解方法覆盖的先决条件:
方法覆盖是面向对象编程中最重要的概念之一。 父类中定义的子类中特定功能的实现可以通过方法重写来更改。 方法覆盖可以定义为子类改变其父类之一(称为祖先)提供的方法的执行的能力。 要重写一个函数,类要满足以下条件。
- 可继承类:无法在类内执行函数覆盖。 从父类派生子类是必要的。
- 在子类和父类中重新定义的函数的签名应该是相同的。 也就是说,被重写的函数和父类中的函数应该有相同数量的参数和形参。
Python 中的方法覆盖概述:
如前所述,面向对象编程语言的方法覆盖属性,子类通过该属性提供已由其超类之一提供的方法的特定实现。 当子类(子类)中的方法与其超类中的方法具有相同的参数或签名、相同的名称和相同的返回类型或子类型时,则称子类(子类)中的方法覆盖了超类(父类)的方法。
用于调用已执行方法的对象决定了它的版本。 如果使用超类中的对象调用该方法,将执行超类中的版本。 但是,如果一个方法被子类中的对象调用,那么子类的版本将被执行。 换句话说,所引用对象的类型用于确定被覆盖和执行的方法的版本。 重写方法的版本不是由引用变量的类型决定的。
查看 upGrad 的数据科学课程
方法覆盖的好处:
Python 中方法重写的主要优点是,该类为继承的方法提供了一个自己定义的模型,而无需更改父类的代码。 在子类使用具有多个子类的父类的情况下,此功能也很有用。 在这种情况下,父类的方法和参数可以被子类调用,而无需修改父类的代码。
探索我们的热门数据科学课程
IIITB 的数据科学执行研究生课程 | 商业决策数据科学专业证书课程 | 亚利桑那大学数据科学硕士 |
IIITB 的数据科学高级证书课程 | 马里兰大学数据科学和商业分析专业证书课程 | 数据科学课程 |
阅读我们流行的数据科学文章
数据科学职业道路:综合职业指南 | 数据科学职业发展:工作的未来就在这里 | 为什么数据科学很重要? 数据科学为企业带来价值的 8 种方式 |
数据科学对管理者的相关性 | 每个数据科学家都应该拥有的终极数据科学备忘单 | 你应该成为数据科学家的 6 大理由 |
数据科学家的一天:他们做什么? | 神话破灭:数据科学不需要编码 | 商业智能与数据科学:有什么区别? |
方法覆盖和方法重载之间的区别
方法覆盖 | 方法重载 |
父类和子类中的方法或函数必须具有相同的签名和相同的名称。 | 函数或方法必须具有相同的名称。 但是,它们的签名不必相同。 |
这是运行时多态性的一个例子。 | 这个过程是编译时多态性的一个例子。 |
继承是 Python 中方法重写的必要条件。 | 在某些情况下可能需要类的继承。 但是,可能并非在所有情况下都需要。 |
方法覆盖发生在父类和子类中的方法之间。 但是,它不能发生在一个类中。 | 方法重载发生在同一个类中的方法之间。 |
此功能用于更改现有方法的行为。 | 它用于向方法的行为添加更多内容。 |
至少需要两个类(一个子类和一个父类)来执行方法覆盖。 | 不需要额外的类,因为重载发生在同一个类中的方法之间。 |
如果您想深入了解 Python 中的方法覆盖,我们建议您参加为期 18 个月的数据科学理学硕士课程。 upGrad 从 IIIT Bangalore 和 Liverpool John Moore's University 提供这门课程。 该课程教授您统计、使用 Python 进行预测分析、机器学习、数据可视化、大数据分析等技能。 对 Python 概念有深入了解的学生可以很好地处理深度学习、自然语言处理、业务分析和数据工程等主题。
想要分享这篇文章?
为未来的职业做准备
申请数据科学理学硕士