Python——运算符重载

article/2025/9/21 8:43:46

Python——运算符重载

      • 1.加法运算符重载和减法运算符重载
      • 2.`__str__()`方法重载和`__ge__()`方法重载
      • 3.索引的切片重载

运算符重载指的是将运算符与类方法关联起来,每个运算符对应一个指定的内置方法。

Python通过重写一些内置方法,实现了运算符的重载功能。

1.加法运算符重载和减法运算符重载

  • 加法运算符重载——__add__()方法
  • 减法运算符重载——__sub__()方法

例 7-16 加法运算符重载和减法运算符重载的实现:

#ex0716.py  加法运算符重载和减法运算符重载的实现
class Computing:def __init__(self,value):self.value = valuedef __add__(self, other):lst = []for i in self.value:lst.append(i+other)#在列表末尾添加新的对象return lstdef __sub__(self, other):lst = []for i in self.value:lst.append(i-other)return lstc = Computing([-1,3,4,5])
print("+运算符重载后的列表",c+2)
print("-运算符重载后的列表",c-2)

运行结果:
在这里插入图片描述

2.__str__()方法重载和__ge__()方法重载

  • 重载__str__()__repr__()方法可以将对象转换为字符串的形式,在执行print()、str()、repr()等方法以及交互模式下直接打印对象时,会调用__str__()__repr__()方法。__str__()__repr__()方法的区别是,只有print()、str()方法可以调用__str__()方法转换,而 __repr__()方法在多种操作下都能将对象转换为自定义的字符串形式。
  • __ge__()方法用于重载>=运算符

例 7-17 __str__()方法重载和 __ge__()方法重载的实现

#ex0717.py  __str__()方法重载和 __ge__()方法重载的实现
class Student:def __init__(self,name,age):self.name = nameself.age = agedef __str__(self):  #重载__str__()return "{}{}".format(self.name,self.age)def __ge__(self, obj):    #重载__ge__()if self.age >= obj.age:return Truereturn Falses1 = Student("Rose",20)
s2 = Student("John",19)
print("学生s1:",s1)
print("学生s2:",s2)
print("s1 >= s2 大小比较结果:",s1 >= s2)

运行结果:
在这里插入图片描述

3.索引的切片重载

  1. __getitem__()方法
    用于索引、切片操作,在对象执行索引、切片或者 for 迭代操作时,会自动调用该方法。
  2. __setitem__()方法
    索引赋值,在通过赋值语句给索引或者切片赋值时,可调用__setitem__()方法实现对序列对象的修改。
  3. __delitem__()方法
    当使用 del 关键字删除对象时,实质上会调用__delitem__()方法实现删除操作。

例 7-18 __getitem__()方法、__setitem__()方法、__delitem__()方法的实现:

#ex0718.py  __getitem__()方法、__setitem__()方法、__delitem__()方法的实现
class SelectData:def __init__(self,data):self.data = data[:]def __getitem__(self, index):return self.data[index]def __setitem__(self, index, value):self.data[index] = valuedef __delitem__(self, index):del self.data[index]#在下面测试
x = SelectData([12,33,23,"ab",False])
print(x)    #x的地址
print(x[:]) #切片,x中的全部元素
print(x[2]) #切片,x中的下标为2元素
print(x[2:])    #切片,x中从下标为2起的所有元素
x[4] = 100  #索引赋值,替换x中的下标为4的元素
print(x[:])
del(x[3])   #删除x中的下标为3的元素
for num in x:   #遍历对象x中的元素print(num,end="")

运行结果:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/yriFHpUC.shtml

相关文章

C++ 运算符重载

前言 本文引用于“C语言中文网”,我整理出来放在博客,方便大家共同学习。所有知识点和代码均已亲测可用,如有疑问,可提出,一起讨论学习。 本章内容: 1. C运算符重载的概念和原理 2. C重载(C重…

配置使用Navicat或PLSQL可视化工具远程连接Oracle

写在前面 本文讲解的是在没有 Oracle 环境,如何使用可视化工具配置远程连接服务器 Oracle 数据库。 目录 写在前面一、概述二、下载 Oracle Instant Client三、配置环境变量四、配置监听五、可视化工具环境配置5.1、Navicat5.2、PLSQL 一、概述 很多时候&#xff0c…

Windows系统远程连接Linux系统操作

远程连接服务器管理时,系统不同可分为两种:一是Linux系统和Mac系统或者Linux系统之间连接;二是Windows系统连接到Linux系统 第一种情况下:在Linux系统和Mac系统下可以相互用命令"ssh [-p] 22 连接主机名主机IP地址"连…

怎么删除远程桌面连接计算机,win10系统强制删除远程桌面连接软件的方法

大家都知道win10系统中,自带有远程桌面连接软件,能够帮助我们实现远程控制其他计算机进行一系列操作,但是有些用户可能用不到这个软件,就想要强制删除远程桌面连接软件,那该怎么操作呢,小编这就给大家带来w…

被远程连接的windows一定要设置账号的密码吗

背景 我们有个windows系统(方便表述叫P),比如win10的,平时使用的用户名是a,没有登录密码,平时使用P的过程是允许没有密码登录操作系统的。 但是,如果使用另外一台windows远程连接它,就得为a设…

SecureCRT--远程连接工具

SecureCRT简介 Linux一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的Linux服务器。这时我们就需要远程登录到Linux服务器来管理维护系统。 Linux系统中是通过SSH服务实现的远程登录功能,默认ssh服务端口号为 22。Window系…

【rdesktop】超实用的ubuntu远程连接windows软件

个人定制命令行 rdesktop 192.168.50.118 -u zhankun -p LPjj1234 -z -a 16 -x lan -r clipboard -g 1920x105000 -r sound:local -r disk:share/home/lyp/zk_share1、ubuntu端 sudo apt install rdesktop2、Windows端 1.计算机—属性—远程设置—远程,勾选&…

Mac远程控制软件有哪些?Macos好用的远程桌面连接软件推荐

Mac功能强大,但是远程协助有点麻烦,此时需要专业的 Mac远程控制软件。远程桌面自带系统连接不太好用,一般不懂计算机的人很难成功。还推荐使用专用的远程控制软件实现,操作简单,不需要很多计算机知识。就下载量和好评率…

远程连接——Win连接远程Linux的软件

SSH客户端主要用来远程访问服务器。 因为像Linux之类的系统要想在Windows上面存在,基本都是通过虚拟机,就好比搭建了一个服务器,你要连接这个系统,自然需要用到一些工具,而SSH客户端就属于这样的工具,或者…

有服务器可以远程连接电脑软件,支持远程控制电脑的工具有哪些?这几款软件值得一试!...

对于普通人来说,如果自己身处于一线工作城市,与异地的家人进行聊天时,他们遇到了电脑上的某种问题时,而我们直接靠说话或文字,并不能直接来解决他们所遇到的问题,他们自己又根本不会操作,此时直接控制他们的电脑就是一个非常棒的方法,既可以解决了问题,不需要多费口舌…

centos 7.6上面安装向日葵远程连接软件

原文:https://www.cnblogs.com/yunjisuan1024/p/11731369.html 下载:https://sunlogin.oray.com/download/ 安装教程:https://service.oray.com/question/11017.html 依赖问题:https://service.oray.com/question/8286.html Cen…

Navicat远程连接MySQL服务器

文章目录 一、准备二、配置Navicat允许远程连接MySQL数据库1、使用Navicat直接连接MySQL2、使用 Navicat 通过 SSH 远程登录后再本地方式连接 MySQL3、查看连接 为什么使用ssh登录1.便捷性 Navicat:数据库可视化工具 一、准备 一台开启 SSH 登录的 Linux 服务器 或 已开启远程…

Linux远程连接和软件安装

Linux远程连接和软件安装 文章目录 Linux远程连接和软件安装1.Linux远程连接简介2.远程连接准备3.Linux进程和程序4.moba实现远程连接步骤:5.软件安装1)yum命令:在线安装2)rpm命令:直接安装3)tar:解压安装4)unzip:解压安装 1.Linux远程连接简介 SSH协议(Secure Shell):专为远程…

推荐|6 款免费又好用的远程管理工具

「 读者福利!2 TB 各类技术资源免费赠送 」 大家好,我是你们的民哥。 2020年开年,让大家意想不到的是,本以为很短暂的假期,却因为这个疫情一推再推,很多人做梦也没有想到:能在家呆这么长时间&am…

推荐几款主流好用的远程终端连接管理软件

一、介绍 远程终端连接管理软件是管理服务器、虚拟机等远程计算机系统不可或缺的工具之一,它可以通过网络连接到另一台计算机,以执行命令、编辑文件或进行其他管理任务,下面我将为大家介绍几款主流好用的远程终端连接管理软件,并…

SSO单点登录原理及实现

一、SSO简介 单点登录( Single Sign-On , 简称 SSO )是多个相关但独立的软件系统访问控制的一个属性。通过使用该属性,用户登录与单个ID和密码来访问所连接的一个或多个系统,而不使用不同的用户名或密码,或在某些配置…

单点登录三个方法及原理:共享Session、基于OpenId的单点登录、基于Cookie的OpenId存储方案

单点登录三个方法及原理:共享Session、基于OpenId的单点登录、基于Cookie的OpenId存储方案 单点登录在现在的系统架构中广泛存在,他将多个子系统的认证体系打通,实现了一个入口多处使用,而在架构单点登录时,也会遇到一…

单点登录原理与实现方式

一、单系统登录机制 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次…

Shiro-单点登录原理

单点登录原理 一、单系统登录机制 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明…

单点登录原理以及简单实现

一、单系统登录机制 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次…