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使用cookie库操保存cookie详解
Mar 03 Python
深入浅析python继承问题
May 29 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
May 25 Python
Python列表推导式与生成器用法分析
Aug 02 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
对python产生随机的二维数组实例详解
Dec 13 Python
Python3字符串encode与decode的讲解
Apr 02 Python
使用Python轻松完成垃圾分类(基于图像识别)
Jul 09 Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 Python
Django命名URL和反向解析URL实现解析
Aug 09 Python
浅谈ROC曲线的最佳阈值如何选取
Feb 28 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 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
php 方便水印和缩略图的图形类
2009/05/21 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
ie下动态加态js文件的方法
2011/09/13 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
Python写的贪吃蛇游戏例子
2014/06/16 Python
python中正则表达式的使用详解
2014/10/17 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
基于python的列表list和集合set操作
2019/11/24 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
环境科学毕业生自荐信
2013/11/21 职场文书
厂长岗位职责
2014/02/19 职场文书
医药销售自荐书
2014/05/29 职场文书
厕所文明标语
2014/06/11 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
初中政教处工作总结
2015/08/12 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python
HTML常用标签超详细整理
2022/03/19 HTML / CSS
处理canvas绘制图片模糊问题
2022/05/11 Javascript