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中的五种异常处理机制介绍
Sep 02 Python
python Django框架实现自定义表单提交
Mar 25 Python
Python入门_浅谈for循环、while循环
May 16 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
May 28 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
May 29 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
Pycharm 设置默认头的图文教程
Jan 17 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
如何基于Python按行合并两个txt
Nov 03 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
一行代码python实现文件共享服务器
Apr 22 Python
python随机打印成绩排名表
Jun 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多图上传小程序代码
2011/07/17 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
PHP时间格式控制符对照表分享
2013/07/23 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
Python下的subprocess模块的入门指引
2015/04/16 Python
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
Python字符串格式化输出代码实例
2019/11/22 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
python扫描线填充算法详解
2020/02/19 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
《金钱的魔力》教学反思
2014/02/24 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
教师求职自荐信
2015/03/26 职场文书
催款通知书范文
2015/04/17 职场文书
企业催款函范本
2015/06/24 职场文书
法律服务所工作总结
2015/08/10 职场文书