当前位置: 首页 > news >正文

Python面向对象编程:派生

本套课在线学习视频(网盘地址,保存到网盘即可免费观看):

​​https://pan.quark.cn/s/69d1cc25d4ba​​

面向对象编程(OOP)是一种编程范式,它通过将数据和操作数据的方法封装在一起,形成对象,从而模拟现实世界的实体和它们之间的关系。继承是OOP中的一个核心概念,它允许通过创建新类(子类或派生类)基于现有类(父类或基类)来避免代码冗余,提高代码的重用性和可维护性。

00:00 - 面向对象编程:派生与继承

继承的基本概念

继承允许子类继承父类的属性和方法,从而避免重复定义相同的代码。子类可以自动获得父类的特征,并且可以添加或重写特定于子类的功能。

class Person:def __init__(self, name, age, sex):self.name = nameself.age = ageself.sex = sexdef speak(self):print(f"My name is {self.name}.")class Student(Person):def __init__(self, name, age, sex, score, major):super().__init__(name, age, sex)self.score = scoreself.major = majordef study(self):print(f"{self.name} is studying {self.major}.")

使用​​super​​关键字

​super​​关键字用于调用父类的方法,特别是在子类的初始化函数中,可以方便地继承父类的属性。

class Student(Person):def __init__(self, name, age, sex, score, major):super().__init__(name, age, sex)self.score = scoreself.major = major

添加独特属性

在子类的初始化函数中,可以添加子类独有的属性,如​​score​​和​​major​​,以体现子类的独特性并增强其功能性。

class Student(Person):def __init__(self, name, age, sex, score, major):super().__init__(name, age, sex)self.score = scoreself.major = major

01:46 - 创建继承自Person类的新类,并添加独特属性

定义新类

通过在新类中使用​​super​​关键字继承​​Person​​类的属性(如​​name​​、​​age​​、​​sex​​),并添加独有的属性(如​​score​​、​​major​​),从而实现新类的功能扩展与特化。

class Student(Person):def __init__(self, name, age, sex, score, major):super().__init__(name, age, sex)self.score = scoreself.major = majordef study(self):print(f"{self.name} is studying {self.major}.")

实例化新类

student = Student("Alice", 20, "Female", 95, "Computer Science")
student.speak()  # Output: My name is Alice.
student.study()  # Output: Alice is studying Computer Science.

03:08 - 自定义属性与方法的实例化

定义自定义属性和方法

在类中定义自定义属性和方法,并通过实例化过程应用这些属性。使用​​self​​关键字访问实例变量,并通过​​super​​关键字继承父类属性。

class Student(Person):def __init__(self, name, age, sex, score, major):super().__init__(name, age, sex)self.score = scoreself.major = majordef study(self):print(f"{self.name} is studying {self.major}.")

实例化过程

student = Student("Alice", 20, "Female", 95, "Computer Science")
student.speak()  # Output: My name is Alice.
student.study()  # Output: Alice is studying Computer Science.

构建子类并添加新属性

通过构建子类并添加新属性,可以满足特定需求,提升代码的复用性和可维护性。

class GraduateStudent(Student):def __init__(self, name, age, sex, score, major, thesis):super().__init__(name, age, sex, score, major)self.thesis = thesisdef research(self):print(f"{self.name} is researching on {self.thesis}.")

实例化子类

graduate_student = GraduateStudent("Bob", 25, "Male", 90, "Artificial Intelligence", "Deep Learning")
graduate_student.speak()  # Output: My name is Bob.
graduate_student.study()  # Output: Bob is studying Artificial Intelligence.
graduate_student.research()  # Output: Bob is researching on Deep Learning.

总结

继承是面向对象编程中的一个重要概念,它通过创建新类基于现有类来避免代码冗余,提高代码的重用性和可维护性。通过将共有的属性和方法抽取到基类中,子类可以继承这些属性和方法,并且可以添加或重写特定于子类的功能。使用​​super​​关键字可以方便地调用父类的方法,特别是在子类的初始化函数中。通过构建子类并添加新属性,可以满足特定需求,提升代码的复用性和可维护性。

http://www.lryc.cn/news/390168.html

相关文章:

  • 华为仓颉编程语言
  • 【微信小程序开发实战项目】——如何制作一个属于自己的花店微信小程序(2)
  • 解锁数据资产的无限潜能:深入探索创新的数据分析技术,挖掘其在实际应用场景中的广阔价值,助力企业发掘数据背后的深层信息,实现业务的持续增长与创新
  • Bridging nonnull in Objective-C to Swift: Is It Safe?
  • 算法训练 | 图论Part1 | 98.所有可达路径
  • 【JVM基础篇】垃圾回收
  • Spark join数据倾斜调优
  • YOLOv5初学者问题——用自己的模型预测图片不画框
  • 【linux学习---1】点亮一个LED---驱动一个GPIO
  • Redis分布式锁代码实现详解
  • Day01-02-gitlab
  • PyCharm远程开发配置(2024以下版本)
  • 解决Ucharts在小程序上的层级过高问题
  • 重保期间的网站安全防护:网站整站锁的应用与实践
  • Qt自定义类型
  • UE4_材质_材质节点_DepthFade
  • 如何对GD32 MCU进行加密?
  • 快速了解GPT-4o和GPT-4区别
  • 周末休息日也能及时回应客户消息!微信自动回复神器太就好用啦!
  • 力扣404周赛 T1/T2/T3 枚举/动态规划/数组/模拟
  • Taurus 性能测试工具详解
  • 天猫商品详情API接口(店铺|标题|主图|价格|SKU属性等)
  • 双向广搜——AcWing 190. 字串变换
  • 工商业光伏项目如何快速开发?
  • Kafka入门-分区及压缩
  • 被⽹络罪犯利⽤的5⼤ChatGPT越狱提⽰
  • AVR晶体管测试仪开源制作与验证
  • 头条系统-05-延迟队列精准发布文章-概述添加任务(db和redis实现延迟任务)、取消拉取任务定时刷新(redis管道、分布式锁setNx)...
  • 不同系统间数据交换要通过 api 不能直接数据库访问
  • 深度探索“目录名称无效“:原因、解决方案与最佳实践