当前位置:首页 > 科技  > 软件

一文学会Python面向对象中封装、继承、多态使用

来源: 责编: 时间:2023-11-01 17:05:58 413观看
导读在Python这门强大而灵活的编程语言中,面向对象编程(OOP)是一个核心的概念,它主要包括三个基本的特性:封装、继承和多态。接下来,我将通过实际的代码示例和详细的解释,带你深入了解这三个概念,并掌握如何在Python中运用它们。

在Python这门强大而灵活的编程语言中,面向对象编程(OOP)是一个核心的概念,它主要包括三个基本的特性:封装、继承和多态。接下来,我将通过实际的代码示例和详细的解释,带你深入了解这三个概念,并掌握如何在Python中运用它们。HMC28资讯网——每日最新资讯28at.com

HMC28资讯网——每日最新资讯28at.com

一、封装(Encapsulation)

封装是面向对象编程的一种方法,它将对象的状态和行为组合在一起,并隐藏了对象内部实现的细节,只暴露出有限的接口供外部访问。HMC28资讯网——每日最新资讯28at.com

代码示例:HMC28资讯网——每日最新资讯28at.com

class Car:    def __init__(self, speed, color):        self.__speed = speed  # 私有属性,用两个下划线开头        self.color = color    def set_speed(self, speed):        if speed < 0:            print("速度不能为负数")        else:            self.__speed = speed    def get_speed(self):        return self.__speedcar = Car(60, "红色")print(car.color)  # 输出:红色print(car.get_speed())  # 输出:60car.set_speed(-10)  # 输出:速度不能为负数car.set_speed(80)print(car.get_speed())  # 输出:80

在上面的例子中,我们定义了一个Car类,它有两个属性:__speed和color。其中__speed是一个私有属性,只能在类的内部访问,我们通过set_speed和get_speed这两个方法来对其进行设置和获取。这样做的好处是我们可以在设置速度的时候加入一些验证逻辑,确保速度不会被设置为负数。HMC28资讯网——每日最新资讯28at.com

二、继承(Inheritance)

继承是面向对象编程中的另一个重要概念,它允许我们定义一个基类,并创建一个或多个派生类,派生类继承了基类的属性和方法,并可以添加或覆盖基类的方法。HMC28资讯网——每日最新资讯28at.com

代码示例:HMC28资讯网——每日最新资讯28at.com

class Vehicle:    def __init__(self, speed):        self.speed = speed    def drive(self):        print(f"该交通工具正在以{self.speed}km/h的速度行驶")class Car(Vehicle):    def __init__(self, speed, brand):        super().__init__(speed)  # 调用基类的构造函数        self.brand = brand    def drive(self):        print(f"{self.brand}汽车正在以{self.speed}km/h的速度行驶")car = Car(80, "宝马")car.drive()  # 输出:宝马汽车正在以80km/h的速度行驶

在这个例子中,我们定义了两个类:Vehicle和Car。Vehicle是一个基类,有一个drive方法用来输出交通工具的行驶速度。Car是从Vehicle继承来的派生类,它除了继承了Vehicle的所有属性和方法外,还添加了一个新的属性brand,并重写了drive方法。当我们创建了一个Car的实例并调用drive方法时,它实际上调用的是Car自己的drive方法,而不是基类Vehicle的drive方法。HMC28资讯网——每日最新资讯28at.com

三、多态(Polymorphism)

多态是指同一个操作作用于不同的对象上可以有不同的解释,即一个接口可以有多个实现。这使得我们可以用一个统一的接口来操作不同的对象,提高了代码的灵活性和可扩展性。HMC28资讯网——每日最新资讯28at.com

代码示例:HMC28资讯网——每日最新资讯28at.com

class Dog:    def speak(self):        return "汪汪汪"class Cat:    def speak(self):        return "喵喵喵"def animal_sound(animal):    print(animal.speak())dog = Dog()cat = Cat()animal_sound(dog)  # 输出:汪汪汪animal_sound(cat)  # 输出:喵喵喵

在这个例子中,我们定义了两个类:Dog和Cat,它们都有一个speak方法用来输出该动物的叫声。虽然Dog和Cat没有继承自同一个基类,但是它们都实现了speak方法,因此我们可以用相同的方式来调用它们的speak方法。animal_sound函数接受一个动物对象作为参数,并调用它的speak方法,无论传入的是Dog对象还是Cat对象,它都能正确地调用相应的方法,这就是多态的体现。通过上面的例子,我们可以看到,封装、继承和多态是面向对象编程的三大基石,它们使得我们的代码更加灵活和易于扩展。掌握了这三个概念,你就能更加自如地运用Python进行面向对象编程了。HMC28资讯网——每日最新资讯28at.com

四、三者区别

下表总结了封装、继承和多态在面向对象编程中的主要区别:HMC28资讯网——每日最新资讯28at.com

特性HMC28资讯网——每日最新资讯28at.com

封装(Encapsulation)HMC28资讯网——每日最新资讯28at.com

继承(Inheritance)HMC28资讯网——每日最新资讯28at.com

多态(Polymorphism)HMC28资讯网——每日最新资讯28at.com

定义
HMC28资讯网——每日最新资讯28at.com

将对象的状态和行为组合在一起,隐藏对象内部实现的细节,只暴露有限的接口供外部访问
HMC28资讯网——每日最新资讯28at.com

允许定义一个基类,并创建一个或多个派生类,派生类继承了基类的属性和方法
HMC28资讯网——每日最新资讯28at.com

同一个操作作用于不同的对象上可以有不同的解释,即一个接口可以有多个实现
HMC28资讯网——每日最新资讯28at.com

目的
HMC28资讯网——每日最新资讯28at.com

提高程序的安全性,防止外部代码直接访问对象内部的状态,只能通过定义好的接口来操作对象
HMC28资讯网——每日最新资讯28at.com

实现代码的复用,派生类可以复用基类的代码,也可以添加或覆盖基类的方法
HMC28资讯网——每日最新资讯28at.com

提高代码的灵活性和可扩展性,通过统一的接口来操作不同的对象
HMC28资讯网——每日最新资讯28at.com

实现方式
HMC28资讯网——每日最新资讯28at.com

通过定义私有属性和公共方法来实现
HMC28资讯网——每日最新资讯28at.com

通过类的继承来实现,派生类使用**super()**来调用基类的方法
HMC28资讯网——每日最新资讯28at.com

通过方法的重写(Override)或者接口实现来实现
HMC28资讯网——每日最新资讯28at.com

例子
HMC28资讯网——每日最新资讯28at.com

类中定义了私有属性和公共方法,外部代码只能通过公共方法来操作私有属性
HMC28资讯网——每日最新资讯28at.com

派生类继承基类的所有属性和方法,可以添加或覆盖基类的方法
HMC28资讯网——每日最新资讯28at.com

不同的类实现相同的方法,通过相同的接口调用不同类的方法
HMC28资讯网——每日最新资讯28at.com

从上表可以看出,封装、继承和多态是面向对象编程的三大特性,它们各有不同的目的和实现方式,但都旨在提高代码的可维护性和可扩展性。HMC28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-16402-0.html一文学会Python面向对象中封装、继承、多态使用

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 这款轻量级 Java 表达式引擎 aviator,真不错!

下一篇: 记一次 .NET 某工厂无人车调度系统 线程爆高分析

标签:
  • 热门焦点
  • 卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    在今天的Redmi后性能时代战略发布会结束之后,Redmi总经理卢伟冰又带来了一篇长文,详解了为什么 Redmi 要开启后性能时代?为什么选择和 MediaTek、Pixelworks 深度合作?以及后性
  • 俄罗斯:将审查iPhone等外国公司设备 保数据安全

    iPhone和特斯拉都属于在各自领域领头羊的品牌,推出的产品也也都是数一数二的,但对于一些国家而言,它们的产品可靠性和安全性还是在限制范围内。近日,俄罗斯联邦通信、信息技术
  • Redmi Pad评测:红米充满野心的一次尝试

    从Note系列到K系列,从蓝牙耳机到笔记本电脑,红米不知不觉之间也已经形成了自己颇有竞争力的产品体系,在中端和次旗舰市场上甚至要比小米新机的表现来得更好,正所谓“大丈夫生居
  • 消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    8月5日消息,迪士尼确实有点忙,忙着将不少动画改成真人版,继《美人鱼》后,真人版《白雪公主》、《魔发奇缘》也在路上了。据外媒消息称,迪士尼将打造真人版
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    来源:极点商业作者:杨铭在淘宝购买珠宝玉石后,因为保证金不够赔付,店铺关闭,退货退款难、维权无门的比比皆是。&ldquo;提供相关产品鉴定证书,支持全国复检,可以30天无理由退换货。&
  • 苹果、三星、惠普等暂停向印度出口笔记本和平板电脑

    集微网消息,据彭博社报道,在8月3日印度突然禁止在没有许可证的情况下向印度进口电脑/平板及显示器等产品后,苹果、三星电子和惠普等大公司暂停向印度
Top