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根据文件大小打log日志
Oct 09 Python
Django中使用locals()函数的技巧
Jul 16 Python
python中requests小技巧
May 10 Python
Python PyQt5实现的简易计算器功能示例
Aug 23 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
pyhton列表转换为数组的实例
Apr 04 Python
Python 从相对路径下import的方法
Dec 04 Python
Python类和对象的定义与实际应用案例分析
Dec 27 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
如何利用Python实现n*n螺旋矩阵
Jan 18 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
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
PHP中Http协议post请求参数
2015/11/02 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
微信小程序使用request网络请求操作实例
2017/12/15 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
ES6箭头函数和扩展实例分析
2020/05/23 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
[03:03]2014DOTA2西雅图国际邀请赛 Alliance战队巡礼
2014/07/07 DOTA
Python在图片中添加文字的两种方法
2017/04/29 Python
python email smtplib模块发送邮件代码实例
2018/04/26 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
详解Python循环作用域与闭包
2019/03/21 Python
Numpy 多维数据数组的实现
2020/06/18 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
介绍下static、final、abstract区别
2015/01/30 面试题
成功的酒店创业计划书
2013/12/27 职场文书
会计专业个人求职信范文
2014/01/08 职场文书
小学教学随笔感言
2014/02/26 职场文书
升学宴主持词
2014/04/02 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
研究生导师评语
2014/12/31 职场文书
保安辞职信范文
2015/02/28 职场文书
Python实现文字pdf转换图片pdf效果
2022/04/03 Python
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers