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实现的朴素贝叶斯分类器示例
Jan 06 Python
使用python绘制二元函数图像的实例
Feb 12 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
Python爬虫实现验证码登录代码实例
May 10 Python
python使用socket 先读取长度,在读取报文内容示例
Sep 26 Python
Python实现图片添加文字
Nov 26 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
Jan 04 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
Python中os模块的简单使用及重命名操作
Apr 17 Python
详解分布式系统中如何用python实现Paxos
May 18 Python
详解Python类和对象内容
Jun 22 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
javascript下function声明一些小结
2007/12/28 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
Python fileinput模块使用实例
2015/05/28 Python
Python+Wordpress制作小说站
2017/04/14 Python
Python标准库之collections包的使用教程
2017/04/27 Python
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
利用python求积分的实例
2019/07/03 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
python剪切视频与合并视频的实现
2020/03/03 Python
Champion官网:美国冠军运动服装
2017/01/25 全球购物
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
税务干部鉴定材料
2014/02/11 职场文书
小学生优秀评语
2014/12/29 职场文书
商超业务员岗位职责
2015/02/13 职场文书
2016小学新学期寄语
2015/12/04 职场文书