python3代码中实现加法重载的实例


Posted in Python onDecember 03, 2020

我们想要知道数目的总和,只要通过+就能实现,这是我们在做题上经常用到的符号。但是在python中不能直接使用,我们需要借助一些代码或者函数帮助我们实现对象的相加。那么实现加法需要用到什么呢?小编在这里跟大家讲讲操作符重载,可能有些人听到这个很长的词比较陌生,我们继续往下深入学习。

Python支持操作符重载。“操作符重载”其实是个简单的概念,你是否曾经想过为什么Python可以让你使用“+”操作符来同时实现加法和连接字符串?这就是操作符重载在发挥作用。

你可以定义使用Python标准操作符符号的对象,这可以让你在特定的环境中使用特定的对象。

Python 关于运算符重载的规则:

不能重载内置类型的运算符

不能新建,只能重载

某些运算符不能重载--is、and、or 和 not

Python运算实际上是通过调用对象的特殊方法实现的,比如a+b:

a=20
b=30
c=a+b
d=a.__add__(b)
print("c:",c)
print("d:",c)

运算结果:

c: 50
d: 50

Vector 对于乘法的重载也是类似的:

def __mul__(self, scalar):
  if isinstance(scalar, numbers.Real):
    return Vector(n * scalar for n in self)
  else:
    return NotImplemented
def __rmul__(self, scalar):
return self * scalar

注意这里我们值定义了向量乘以一个数的乘法。尝试做点乘,矩阵乘法被分配给了@符号,我们也可以做这个定义,然后来运算

def __matmul__(self, other):
  try:
    return sum(a * b for a, b in zip(self, other))
  except TypeError:
    return NotImplemented
def __rmatmul__(self, other):
  return self @ other # this only works in Python 3.5

借助操作运算符重载我们不仅可以实现加法的运算,乘法也同样可以完成。

Python 相关文章推荐
Python脚本实现集群检测和管理功能
Mar 06 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
python 判断字符串中是否含有汉字或非汉字的实例
Jul 15 Python
python爬虫豆瓣网的模拟登录实现
Aug 21 Python
pandas-resample按时间聚合实例
Dec 27 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
Python制作简易版小工具之计算天数的实现思路
Feb 13 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
Python不支持 i ++ 语法的原因解析
Jul 22 Python
conda安装tensorflow和conda常用命令小结
Feb 20 Python
python判断all函数输出结果是否为true的方法
Dec 03 #Python
django中cookiecutter的使用教程
Dec 03 #Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 #Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 #Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
Dec 03 #Python
python 调整图片亮度的示例
Dec 03 #Python
Python 实现PS滤镜的旋涡特效
Dec 03 #Python
You might like
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
2017/12/27 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
2020/02/27 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
布同 统计英文单词的个数的python代码
2011/03/13 Python
浅谈python函数之作用域(python3.5)
2017/10/27 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
django session完成状态保持的方法
2018/11/27 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
abstract是什么意思
2012/02/12 面试题
一般党员对照检查材料
2014/09/24 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
五一劳动节慰问信
2015/02/14 职场文书
红高粱观后感
2015/06/10 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
Go语言基础函数基本用法及示例详解
2021/11/17 Golang
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python