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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
python结合shell查询google关键词排名的实现代码
Feb 27 Python
python清除字符串中间空格的实例讲解
May 11 Python
python re正则匹配网页中图片url地址的方法
Dec 20 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 Python
Python 实现加密过的PDF文件转WORD格式
Feb 04 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
Python中使用threading.Event协调线程的运行详解
May 02 Python
django的autoreload机制实现
Jun 03 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 Python
python树莓派通过队列实现进程交互的程序分析
Jul 04 Python
Matplotlib绘制条形图的方法你知道吗
Mar 21 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中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
angularJS提交表单(form)
2015/02/09 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
JS实现留言板功能
2017/06/17 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
详解angular2.x创建项目入门指令
2018/10/11 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Python调用C语言开发的共享库方法实例
2015/03/18 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
小学红领巾中秋节广播稿
2014/01/13 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
庆国庆活动总结
2014/08/28 职场文书
学习型党组织心得体会
2014/09/12 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书