在日常工作中,我们经常需要对自定义的类对象进行操作或比较,其实重载我们一直在用,__init__初始化函数就是最常用使用的重载函数。设我们定义了如下一个类,用来表示平面上的一个点。
class point:def __init__(self, x, y):self.x = xself.y = y

其中__init__函数就是一个最常用的重载函数,用来对类对象进行初始化。

如果我们需要对不同的point进行+,-或==判断的算术或逻辑操作,可以重载如下函数:
class point:def __init__(self, x, y):self.x = xself.y = y

def __add__(self, other):return point(self.x + other.x, self.y + other.y)

def __sub__(self, other):return point(self.x - other.x, self.y - other.y)

def __eq__(self, o):return abs(self.x-o.x) < 0.0001 and abs(self.y-o.y) < 0.0001
p1 = point(4, 5)p2 = point(5, 4)p3 = p1 + p2p4 = p1 - p2print(p3.x, p3.y)print(p4.x, p4.y)print(p1 == p2)
输出结果:
9 9
-1 1
False

如果需要比较大小,可以重载__gt__,__lt__等函数。

def __gt__(self, other):return self.x > other.x

def __lt__(self, other):return self.x < other.x

除了算术操作符(+-*/,abs,取负)以及比较操作(>,>=,<,<=,==)外,还有逻辑操作以及序列操作等,详细的可以参见Python的operator模块。

Python的操作符重载相关推荐

  1. Python中的操作符重载

    类可以重载python的操作符 操作符重载使我们的对象与内置的一样.__X__的名字的方法是特殊的挂钩(hook),python通过这 种特殊的命名来拦截操作符,以实现重载. python在计算操作符 ...

  2. Python学习手册之内部方法、操作符重载和对象生命周期

    在上一篇文章中,我们介绍了 Python 的类和继承,现在我们介绍 Python 的内部方法.操作符重载和对象生命周期. 查看上一篇文章请点击:https://www.cnblogs.com/dust ...

  3. python中的运算符重载_Python中的操作符重载

    Python部落组织翻译,禁止转载,欢迎转发. BY ALOK THAKUR · FEBRUARY 22, 2016 2016年2月22日 , ALOK THAKUR写 Python支持许多内建的类型 ...

  4. python中线程安全的数据结构_Scala(八)-①-数据结构-集合操作-线程安全的集合-操作符重载...

    ① 集合操作 Why 为什么需要集合操作?集合操作都包括哪些?Scala的集合操作主要为了适应大数据的发展,我们以Map为例.于事需入局,于程需入题,先看下题. 入题 请将list(3,5,7) 中的 ...

  5. python中小于号的重载_Python操作符重载

    可以根据所使用的操作数更改Python中运算符的含义.这种做法被称为运算符重载. Python操作系统适用于内置类. 但同一运算符的行为在不同的类型有所不同. 例如,+运算符将对两个数字执行算术加法, ...

  6. Python3 操作符重载方法

    操作符重载方法: 类(class)通过使用特殊名称的方法(len(self))来实现被特殊语法(len())的调用 类(class)通过使用特殊名称的方法(len(self))来实现被特殊语法(len ...

  7. 拷贝构造函数、析构函数、赋值操作符重载、取地址操作符重载和const修饰的取地址操作符重载...

    2019独角兽企业重金招聘Python工程师标准>>> 在我们学习C++的过程中,我们难免会遇到类,在类中有6个默认的函数,它们分别为:构造函数.拷贝构造函数.析构函数.赋值操作符重 ...

  8. 【C++】操作符重载

    注意:操作符重载可以当做=="自定义类的运算"== 1 为什么需要操作符重载? 对于基础的变量,int等,不需要重载就知道如何做,但是对于自定义类,就无法进行运算,比如复数类. 2 ...

  9. C++拾趣——有趣的操作符重载

    操作符重载是C++语言中一个非常有用的特性.它可以让我们比较优雅的简化代码,从而更加方便的编写逻辑. 为什么要使用操作符重载 一种常见的用法是重载<<运算符,让标准输出可以输出自定义的类型 ...

最新文章

  1. 裸眼3D将是未来移动端的显示的主要技术
  2. IP Precedence DSCP、TOS
  3. POJ 3461 KMP
  4. c++ 常见问题之string
  5. adb 连接某个wifi_一加7 Pro全局强制开启90Hz刷新率的办法(附ADB文件下载)
  6. 墨迹天气语音包_小米有品“智能AI翻译机”评测,还内置了语音助手,随身WiFi功能...
  7. mysql中常见的几种索引
  8. C++查缺补漏,赶紧的
  9. 一行一个链接代码_AI最优论文+代码查找神器:966个ML任务、8500+论文任你选
  10. [转]『TensorFlow』读书笔记_TFRecord学习
  11. Mxnet入门--第3篇
  12. H264编解码算法在网络视频传输中的应用
  13. MFI认证——苹果MFI账号解读
  14. 深入理解Character Region Awareness for Text Detection (CRAFT)
  15. 浏览器LocalStorage和SharedWorker跨标签页通信-连载2
  16. 沉痛悼念旷视首席科学家、旷视研究院院长孙剑博士,享年 45 岁
  17. 什么是Richard Feynman 积分技巧
  18. java什么是线程安全_什么是线程安全?
  19. Android Studio中no module问题
  20. 火力全开,一网打尽Python常用知识点!

热门文章

  1. 【struts2+hibernate+spring项目实战】用户登录校验(struts拦截器)
  2. 【Spring注解系列09】Spring初始化和销毁接口-InitializingBean与DisposableBean
  3. CSS选择器、盒子模型及布局
  4. php9宫格抽奖程序_php抽奖算法(适用于九宫格、大转盘)
  5. graphpad 折线图横坐标比例_GraphPad Prism绘制剂量反应曲线
  6. 交叉熵损失函数和focal loss_理解熵、交叉熵和交叉熵损失
  7. P1525关押罪犯(并查集补集)
  8. 第八届蓝桥杯决赛 磁砖样式(枚举)
  9. linux ie 插件目录在哪个文件夹里,Linux下的IE浏览器使用方法[图]
  10. xss植入_xss的高级利用