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 相关文章推荐
Django读取Mysql数据并显示在前端的实例
May 27 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
Jun 11 Python
Python3 max()函数基础用法
Feb 19 Python
python中使用while循环的实例
Aug 05 Python
Django Admin中增加导出CSV功能过程解析
Sep 04 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 Python
Python实现捕获异常发生的文件和具体行数
Apr 25 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
Python logging模块handlers用法详解
Aug 14 Python
Elasticsearch 索引操作和增删改查
Apr 19 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 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之数据库操作详解及乱码解决!
2007/01/02 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
PHP使用phpunit进行单元测试示例
2019/09/23 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
js实现数字滚动特效
2019/12/16 Javascript
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
超简单的Python HTTP服务
2019/07/22 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
如何利用Python识别图片中的文字
2020/05/31 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
安全在我心中演讲稿
2014/09/01 职场文书
论文致谢词范文
2015/05/14 职场文书
运动会开幕式主持词
2015/07/01 职场文书
python实现简单石头剪刀布游戏
2021/10/24 Python