python的运算符实际上是通过对象的特殊方法实现的

【例如】

a=20

b=30

c=a+b

d=a.__add__(b)

print("c=",c)

print("d=",d)

执行返回

c= 50

d= 50

常见的特殊方法统计说明

方法

说明

例子

__init__

构造方法

对象创建:p=Person()

__del__

析构方法

对象回收

__repr__,__str__

打印,转换

print(a)

__call__

函数调用

a()

__getattr__

点号运算

a.xxx

__getitem__

索引运算

a[key]

__setitem__

索引赋值

a[key]=value

__len__

长度

ken(a)

每一个运算符实际都对应了相应的方法,如

运算符

特殊方法

说明

运算符+

__add__

加法

运算符-

__sub__

减法

__it__,__le__,__eq__

比较运算符

>,>=,!=

__gt__,__ge__,__ne__

|,^,&

__or__,__xor__,__and__

或,异或,与

<>

__lshift__,__rshitf__

左移,右移

*,/,%,//

__mul__,__turediv__,__mod__.__floordiv__

乘,浮点数,模运算(取余),整数除

**

__pow__

指数运算

可以重写上面的特殊方法,即实现了“运算符的重载”

【例子】

#测试运算符重载,重写即重载

class Person:

def __init__(self,name):

self.name=name

#重写加法

def __add__(self, other):

if isinstance(other,Person):#判断是否同类对象

return "{}{}".format(self.name,other.name)

else:

return '不是同类型,不能相加'

# 重写乘法

def __mul__(self, other):

if isinstance(other, int): # 判断是否是整数型

return self.name*other

else:

return '不是同类型,不能乘法'

if __name__ == '__main__':

#重载加法

p1=Person('张三')

p2=Person('张三三')

print(p1+p2)

# 重载乘法

print(p1*5)

执行返回

本文地址:https://blog.csdn.net/qq_38934189/article/details/109033535

希望与广大网友互动??

点此进行留言吧!

python方法与重载_python特殊方法和运算符重载(番外--重载)相关推荐

  1. python魔法方法是什么_Python魔法方法指南(基础)

    什么是魔法方法呢?它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加"魔法"的特殊方法. 它们经常是两个下划线包围来命名的(比如__init__ ,__lt__ ) ...

  2. python构造和析构_python魔法方法 构造和析构实例讲解

    目录: 一._ _init_ _(self[, ...]) 二._ _new_ _(cls[, ...]) 三._ _del_ _(self) 四.课时41课后习题及答案 说的那么厉害,那什么是魔法方 ...

  3. python魔方程序算法_Python魔方方法详解

    魔法方法 含义 基本的魔法方法 __new__(cls[, ...]) 1. __new__ 是在一个对象实例化的时候所调用的第一个方法 2. 它的第一个参数是这个类,其他的参数是用来直接传递给 __ ...

  4. python变量运算符_Python基础 — 变量和运算符

    序言:这一章我们将学习变量以及常见的类型,我们将以案例和代码相结合的方式进行梳理,但是其中所有的案例和知识点 都是Python3 版本. 变量和运算符 1.1 初步介绍 ​ 在程序设计中,变量是一种存 ...

  5. python参数类型限定_python限定方法参数类型、返回值类型、变量类型等|python3教程|python入门|python教程...

    https://www.xin3721.com/eschool/python.html typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints ...

  6. python中rfind函数_Python rfind()方法

    Python rfind()方法 描述 Python rfind() 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1. 语法 rfind()方法语法: str.rfind(st ...

  7. 下列不是python数据类型的是_Python数据类型方法精心整理,不必死记硬背,看看源码一切都有了...

    Python认为一切皆为对象:比如我们初始化一个list时: li = list('abc') 实际上是实例化了内置模块builtins(python2中为__builtin__模块)中的list类: ...

  8. python字符串的表示_Python字符串方法总结

    Python字符串方法图示: (温馨提示:对图片点右键--在新标签页中打开图片) 1.index() 定义:查找并返回指定str的索引位置,如果没找到则会抛异常(查找的顺序是从左至右)可以指定范围:开 ...

  9. python中drop用法_Python drop方法删除列之inplace参数实例

    drop方法有一个可选参数inplace,表明可对原数组作出修改并返回一个新数组.不管参数默认为False还是设置为True,原数组的内存值是不会改变的,区别在于原数组的内容是否直接被修改.默认为Fa ...

最新文章

  1. vue-cli 使用小技巧
  2. [cb]ScriptableWizard 创建向导
  3. 结构化方法与面向对象方法的比较
  4. JAVA服务治理实践之无侵入的应用服务监控--转
  5. 分页缓冲池占用很高怎么解决_聊点深的:解析MySQL,看看InnoDB 缓冲池(buffer pool) 工作原理...
  6. h3c交换机配置远程管理_高手给说下H3C交换机如何配置telnet远程登录
  7. des加密 ios 和java_三重Des对称加密在Android、Ios 和Java 平台的实现
  8. 如何自定义MFC的窗口类名
  9. MIUI V5正式发布 全部功能展示PPT回看
  10. Cheatsheet: 2015 03.01 ~ 03.31
  11. Hyper-V 之04 SCVMM 2012 R2安装
  12. 外观模式又叫门面模式?
  13. loadrunner11 下载安装说明
  14. JavaScript-ES6新特性详解
  15. kali 暴力破解 WiFi破解+fluxion安装使用(保姆级超详细)
  16. FineBI01:FineBI介绍
  17. 类似京东淘宝寄售转拍系统源码-拍卖系统源码-竞拍系统网站源码
  18. 层次分析法--matlab
  19. 改进的节点分析法(Modified Nodal Analysis)
  20. Tomcat7源码解析

热门文章

  1. 技术实践丨如何解决异步接口请求快慢不均导致的数据错误问题?
  2. 【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频
  3. 【华为云技术分享】Linux内核发展史 (3)
  4. 【云速建站】会员注册弹窗添加及设置
  5. python爬取网页版QQ空间,生成词云图、柱状图、折线图(附源码)
  6. Android笔记 - Android studio如何添加arr库
  7. HDFView 3.1.2 在WIN10系统安装后打开出现黑框闪退的解决方法
  8. 织梦熊掌号提交urls.php,织梦熊掌号api自动提交代码
  9. 织梦网站服务器配置,织梦本地服务器配置
  10. 微软的自动更新问题,导致svchost.exe占用cpu超过50%