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

Python中类、继承和方法重写的使用

在这里插入图片描述

😀前言
本篇博文将介绍如何定义类、创建类的实例、访问类的成员、使用属性、实现继承及方法重写,希望你能够喜欢

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

文章目录

  • 面向对象程序设计(OOP)
    • 1. 定义类
      • 示例
    • 2. 创建类的实例
      • 示例
    • 3. 创建类的成员并访问
      • 示例
    • 4. 创建用于计算的属性
      • 示例
    • 5. 继承的基本语法
      • 示例
    • 6. 方法重写
      • 示例
    • 😄总结
      • 注意事项

面向对象程序设计(OOP)

面向对象编程(OOP,Object-Oriented Programming)是一种常用的编程范式,强调通过类和对象来组织代码。Python 作为一种面向对象语言,提供了强大的支持,方便开发者设计结构化的代码。

1. 定义类

在 Python 中,类是通过 class 关键字来定义的。类是一种模板,它定义了对象的属性和行为,具体语法如下:

class ClassName:"""类的帮助信息"""# 类体statement

参数说明

  • ClassName:类名,通常首字母大写,使用“驼峰式命名法”,即每个单词的首字母都大写,例如 MyClass
  • statement:类体,主要由类变量(或类成员)、方法和属性等定义语句组成。如果在定义类时,没想好类的具体功能,也可以在类体中直接使用 pass 语句代替。

示例

class Animal:"""这是一个动物类"""pass

该示例定义了一个名为 Animal 的类,当前类没有任何属性或方法,但可以用于实例化对象。

2. 创建类的实例

定义类后,可以通过调用类名来创建类的实例(对象),即实例化。创建实例的语法如下:

instance_name = ClassName(parameter_list)

其中:

  • ClassName 是类名;
  • parameter_list 是传递给类构造函数(__init__ 方法)的参数列表。如果类没有定义 __init__ 方法,参数列表可以省略。

示例

class Dog:def __init__(self, name):self.name = namedog1 = Dog("Buddy")
print(dog1.name)  # 输出:Buddy

在该示例中,Dog 类通过构造函数 __init__ 初始化对象,并将参数 name 赋值给实例属性。

3. 创建类的成员并访问

类的成员包括属性和方法,方法是在类中定义的函数。实例方法的第一个参数必须是 self,它表示实例本身,用于在方法内部访问实例的属性和其他方法。语法如下:

class ClassName:def method_name(self, parameter_list):# 方法体pass

示例

class Cat:def __init__(self, name, age):self.name = nameself.age = agedef speak(self):print(f"{self.name} says Meow!")cat1 = Cat("Whiskers", 3)
cat1.speak()  # 输出:Whiskers says Meow!

在该示例中,我们定义了一个名为 Cat 的类,并定义了一个 speak 实例方法,可以通过类的实例来访问这个方法。

4. 创建用于计算的属性

通过使用 @property 装饰器,可以将方法转换为可计算的属性,这样可以像访问属性一样调用方法。其语法如下:

class ClassName:@propertydef property_name(self):# 返回计算结果pass

示例

class Circle:def __init__(self, radius):self._radius = radius@propertydef area(self):return 3.1416 * (self._radius ** 2)circle1 = Circle(5)
print(circle1.area)  # 输出:78.54

在该示例中,Circle 类的 area 方法被定义为属性,因此可以直接通过 circle1.area 来访问,而不需要加括号。

5. 继承的基本语法

继承允许一个类从另一个类中获取属性和方法,避免重复代码。Python 支持单继承和多继承,其语法如下:

class DerivedClass(BaseClass):"""类的帮助信息"""pass

参数说明

  • DerivedClass:派生类,继承自 BaseClass
  • BaseClass:基类,派生类继承的父类。

示例

class Animal:def speak(self):print("Animal makes a sound")class Dog(Animal):def speak(self):print("Dog barks")dog1 = Dog()
dog1.speak()  # 输出:Dog barks

在该示例中,Dog 类继承了 Animal 类并重写了 speak 方法。

6. 方法重写

当派生类中需要修改或扩展基类的某些行为时,可以通过方法重写来实现。重写后的方法将覆盖基类中的方法,语法与普通方法相同。

示例

class Fruit:color = "绿色"def harvest(self):print("水果已经收获")class Orange(Fruit):color = "橙色"def harvest(self):print(f"橘子是: {self.color} 的")print(f"原来是: {Fruit.color} 的")print("橘子已经收获……")orange1 = Orange()
orange1.harvest()

在这个例子中,Orange 类继承了 Fruit 类并重写了 harvest 方法,通过 self.colorFruit.color 区分实例属性和类属性。

😄总结

面向对象编程是 Python 语言中一个重要的特性,通过类和对象,开发者可以更好地组织代码,复用代码。本文介绍了类的定义、实例化、成员访问、属性定义、继承和方法重写。

注意事项

  1. 类命名:遵循驼峰式命名法有助于代码的可读性。
  2. 继承:通过继承可以实现代码重用,但要注意多继承时的复杂性。
  3. 方法重写:重写父类方法时,确保新方法逻辑清晰且不破坏原有功能。

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

相关文章:

Python中类、继承和方法重写的使用

😀前言 本篇博文将介绍如何定义类、创建类的实例、访问类的成员、使用属性、实现继承及方法重写,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以…...

【Neo4j】- 轻松入门图数据库

文章目录 前言-场景一、Neo4j概述二、软件安装部署1.软件下载2.软件部署3.软件使用4.语法学习 总结 前言-场景 这里用大家都了解的关系数据与图数据据库对比着说,更加方便大家理解图数据库的作用 图形数据库和关系数据库均存储信息并表示数据之间的关系。但是,关系…...

LeetCode 206 - 反转链表

解题思路 我们可以使用迭代的方法来实现链表的反转,这里我们先介绍迭代的方法。迭代的思路是:从头节点开始,依次将节点的next指针进行反转,使得当前节点的next指向其前一个节点,然后依次向后移动指针,直至…...

AI生成大片,Movie Gen 可以生成长视频并配上完美的音效,带给观众更好的观看体验。

之前的文章中已经给大家介绍了一些关于长视频生成相关的技术,AI生成大片已经越来越近了。感兴趣的小伙伴可以点击下面链接阅读~ Movie Gen 的工作原理可以简单理解为两个主要部分:一个是生成视频的模型,另一个是生成音频的模型。首先&#x…...

Flink on yarn模式下,JobManager异常退出问题

这个问题排除了很久,其中更换了Flink版本,也更换了Hadoop版本一直无法解决,JobManager跑着跑着就异常退出了。资源管理器上是提示运行结束,运行状态是被Kill掉。 网上搜了一圈,都说内存不足、资源不足,配置…...

面对AI算力需求激增,如何守护数据中心机房安全?

随着人工智能(AI)技术飞速发展,AI算力需求呈现爆发式增长,导致对数据设备电力的需求指数级攀升。这给数据中心带来前所未有的挑战和机遇,从提供稳定的电力供应、优化高密度的部署,到数据安全的隐私保护&…...

Connection --- 连接管理模块

目录 模块设计 模块实现 shared_from_this 模块测试纠错 模块设计 Connection模块是对通信连接也就是通信套接字的整体的管理模块,对连接的所有操作都是通过这个模块提供的接口来完成的。 那么他具体要进行哪些方面的管理呢? 首先每个通信连接都需…...

iconfont图标放置在某个元素的最右边

在网页设计中&#xff0c;如果你想要将iconfont图标放置在某个元素的最右边&#xff0c;你可以通过CSS来实现这个布局。以下是一些基本的CSS代码示例&#xff0c;它们可以帮助你根据不同的布局需求将图标放置在最右边&#xff1a; 内联元素&#xff08;如<span>&#xff…...

Android10 recent键相关总结

目录 初始化流程 点击Recent键流程 RecentsActivity 显示流程 RecentsModel 获取数据管理类 RecentsActivity 布局 已处于Recent界面时 点击recent 空白区域 点击返回键 recent组件配置 Android10 Recent 功能由 System UI&#xff0c;Launcher共同实现。 初始化流程 …...

Ajax:原生ajax、使用FormData的细节问题,数据的载体

人生海海&#xff0c;山山而川&#xff0c;不过尔尔&#xff1b;空空而来&#xff0c;苦苦而过&#xff0c;了了而去 文章目录 原生ajax使用FormData的细节问题数据的载体 原生ajax 执行顺序 创建xhr对象 var xhr new XMLHttpRequest()调用xhr.open(请求方式, url)函数&#…...

【HuggingFace 如何上传数据集 (2) 】国内网络-稳定上传图片、文本等各种格式的数据

【HuggingFace 下载】diffusers 中的特定模型下载&#xff0c;access token 使用方法总结【HuggingFace 下载中断】Git LFS 如何下载指定文件、单个文件夹&#xff1f;【HuggingFace 如何上传数据集】快速上传图片、文本等各种格式的数据 上文的方法因为是 https 协议&#xf…...

GNOME桌面安装dock

Although GNOME Shell integration extension is running, native host connector is not detected. Refer documentation for instructions about installing connector. sudo yum -y install chrome-gnome-shell...

移动app测试有哪些测试类型?安徽软件测试中心分享

科技信息时代&#xff0c;移动app的出现为我们的生活及工作带来了极大的便利。一款app从生产到上线必不可少的就是测试阶段&#xff0c;app测试是保障产品质量和安全的有效手段&#xff0c;那么移动app测试有哪些测试类型呢?安徽软件测试中心又有哪些? 1、功能性测试   需…...

Android 10.0 截屏流程

通常未通过特殊定制的 Android 系统&#xff0c;截屏都是经过同时按住音量下键和电源键来截屏。本篇文章就只讨论使用这些特殊按键来进行截屏。 这里我们就要明白事件是在哪里进行分发拦截的。通过源码的分析&#xff0c;我们发现是在PhoneWindowManager.java 中。 PhoneWindow…...

Axure零基础深入浅出的讲解

在当今的互联网产品设计领域&#xff0c;原型设计已经成为了产品经理、设计师和开发者之间沟通的桥梁。而Axure作为一款功能强大、灵活易用的原型设计工具&#xff0c;正是很多产品经理的得力助手。无论你是产品经理新手&#xff0c;还是资深设计师&#xff0c;Axure都能帮助你…...

PyTorch求导相关

PyTorch是动态图&#xff0c;即计算图的搭建和运算是同时的&#xff0c;随时可以输出结果&#xff1b;而TensorFlow是静态图。 在pytorch的计算图里只有两种元素&#xff1a;数据&#xff08;tensor&#xff09;和 运算&#xff08;operation&#xff09; 运算包括了&#xf…...

Halcon基础-瓶盖带角度的OCR批量识别

Halcon基础-OCR识别 1、OCR识别素材2、创建路径文件3、Halcon代码实现4、运行效果5、资源获取 1、OCR识别素材 这里我准备了7张不同角度的OCR图片&#xff0c;如下所示&#xff1a; 2、创建路径文件 按照下图所示创建全部文件夹和文件&#xff1a; 01用来存放OCR识别原图 c…...

php语法学习

启动php 进入软件 打开文件&#xff1a;编写代码 $php true; $java false; var_dump($php);//输出变量细节 var_dump($java) 字符串 注意可以使用双引号也可以使用单引号 测试 $php "最好学web语言"; $java 脱胎于c语言; var_dump($php);//输出变量细节 var…...

JavaWeb合集22-Apache POI

二十二、Apache POI Apache POI是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用POI在Java 序中对Miscrosoft Office各种文件进行读写操作。一般情况下&#xff0c;POI都是用于操作Excel文件。 使用场景&#xff1a;银行网银系统导出…...

DDD重构-实体与限界上下文重构

DDD重构-实体与限界上下文重构 概述 DDD 方法需要不同类型的类元素&#xff0c;例如实体或值对象&#xff0c;并且几乎所有这些类元素都可以看作是常规的 Java 类。它们的总体结构是 Name: 类的唯一名称 Properties&#xff1a;属性 Methods: 控制变量的变化和添加行为 一…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析

1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器&#xff08;TI&#xff09;推出的一款 汽车级同步降压转换器&#xff08;DC-DC开关稳压器&#xff09;&#xff0c;属于高性能电源管理芯片。核心特性包括&#xff1a; 输入电压范围&#xff1a;2.95V–6V&#xff0c;输…...