Pthon魔术方法(Magic Methods)-运算符重载
Pthon魔术方法(Magic Methods)-运算符重载
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.Python运算符对应的魔术方法
1>.比较运算符
<:
对应__lt__ <=:
对应__le__ ==:
对应__eq__ >:
对应__gt__ >=:
对应__ge__ !=:
对应__ne__
2>.算数运算符
+:
对应__add__ -:
对应__sub__ *:
对应__mul__ /:
对应__truediv__ %:
对应__mod__ //:
对应__floordiv__ **:
对应__pow__ divmod:
对应__divmod__
3>.赋值运算符
+=:
对应__iadd__,一般会in-place就地来修改自身,如果没有定义该方法就会去找__add__方法。 -=:
对应__isub__,一般会in-place就地来修改自身,如果没有定义该方法就回去找__sub__方法,以下同理。 *=:
对应__imul__ /=:
对应__itruediv__ %=:
对应__imod__ //=:
对应__ifloordiv__ **=:
对应__ipow__
二.案例展示
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie """
完成Point类设计,实现判断点相等的方法,并完成向量的加法。
""" class Point:
def __init__(self,x,y):
self.x = x
self.y = y def __eq__(self, other):
return self.x == other.x and self.y == other.y def __add__(self, other):
return Point(self.x + other.x,self.y + other.y) def add(self,other):
return (self.x + other.x,self.y + other.y) def __str__(self):
return "<Point:{},{}>".format(self.x,self.y) p1 = Point(10,20)
p2 = Point(3,9) #使用普通方法调用
print(p1.add(p2)) #使用运算符重载方法调用
print(p1 + p2)
print(p1 == p2) #以上代码执行结果如下:
(13, 29)
<Point:13,29>
False
三.运算符重载应用场景
往往是用咋子面向对象实现的类,需要大量的运算,而运算符是这种运算在数学上最常见的表达方式。 例如,上例中的对"+"进行了运算符重载,实现了Point类的二元操作,重新定义为Point + Point。 提供运算符重载,比直接提供方法要更加适合该领域内使用的习惯。 int类,几乎实现了所有操作符,可以作为参考。
Pthon魔术方法(Magic Methods)-运算符重载的更多相关文章
- php中的魔术方法(Magic methods)和魔术常亮
PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __cal ...
- Pthon魔术方法(Magic Methods)-容器相关方法
Pthon魔术方法(Magic Methods)-容器相关方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.容器相关方法汇总 __len__: 内建函数len(),返回对象的 ...
- Pthon魔术方法(Magic Methods)-描述器
Pthon魔术方法(Magic Methods)-描述器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.描述器概述 1>.描述器定义 Python中,一个类实现了&quo ...
- Pthon魔术方法(Magic Methods)-反射
Pthon魔术方法(Magic Methods)-反射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.反射概述 运行时,区别于编译时,指的时程序被加载到内存中执行的时候. 反射 ...
- Pthon魔术方法(Magic Methods)-上下文管理
Pthon魔术方法(Magic Methods)-上下文管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.上下文管理方法 __enter__: 进入与此对象相关的上下文.如果 ...
- Pthon魔术方法(Magic Methods)-可调用对象
Pthon魔术方法(Magic Methods)-可调用对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.可调用对象方法 __call__: 类中定义一个该方法,实例就可以像 ...
- Pthon魔术方法(Magic Methods)-bool
Pthon魔术方法(Magic Methods)-bool 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.bool方法 __bool__: 内建函数bool(),或者对象放在逻 ...
- Pthon魔术方法(Magic Methods)-hash
Pthon魔术方法(Magic Methods)-hash 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.hash方法 __hash__: 内建函数hash()调用的返回值,返 ...
- Pthon魔术方法(Magic Methods)-可视化
Pthon魔术方法(Magic Methods)-可视化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.关于可视化的魔术方法简介 __str__: str()函数,format ...
随机推荐
- ubuntu下编译C++程序
1.CMake 定义:CMake是一个跨平台编译工具,可以用来自动输出makefile文件: 用法:(1)想要自动生成makefile,还需要编写对应的CMakeLists.txt文件: (2)在CM ...
- CSS布局:sticky定位
stick定位一如其名:它随“正常”文档流而动,直到规定位置,尔后“粘”在那里:或者,当它发现自己可以跟随“正常”文档流而脱离sticky位置时,就果断离开从而加入文档流. 代码与效果如下: < ...
- 图像拼接(image stitching)
# OpenCV中stitching的使用 OpenCV提供了高级别的函数封装在Stitcher类中,使用很方便,不用考虑太多的细节. 低级别函数封装在detail命名空间中,展示了OpenCV算法实 ...
- CentOS下安装Tomcat
CentOS版本:CentOS-7-x86_64-Minimal-1810 1.安装JDK 详情查看:CentOS下安装JDK-rpm文件.CentOS安装JDK-tar.gz文件 2.下载tomca ...
- spark 读写text,csv,json,parquet
以下代码演示的是spark读取 text,csv,json,parquet格式的file 为dataframe, 将dataframe保存为对应格式的文件 package com.jason.spar ...
- springboot 读取Jar 类路径下的文件
Resource resource = new DefaultResourceLoader().getResource("classpath:download/WORKER_OVERTIME ...
- git 删除本地分支,删除远程分支
本地分支 git branch -d 分支名 远程分支 git push origin --delete 分支名 查看所有分支 git branch -a
- nginx 反向代理报400错误与Host关系
转载自:https://blog.csdn.net/qq_22208737/article/details/80787396 如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段 ...
- (语法基础)浅谈面向切面编程(AOP)
一:前言 面向切面编程是一个很重要的编程思想,想要写出一个便于维护的程序,理解AOP并且能熟练的在实际编程中合理的运用AOP思想是很有必要的 二:AOP的基本概念 基础概念:AOP中文翻译面向切面编程 ...
- # - net - cannot access a disposed object r nobject name filebufferingreadstream
.Net Core 2.1-Cannot access a disposed object.Object name: 'IServiceProvider' (3) I just migrated .N ...