python方法与重载_python特殊方法和运算符重载(番外--重载)
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特殊方法和运算符重载(番外--重载)相关推荐
- python魔法方法是什么_Python魔法方法指南(基础)
什么是魔法方法呢?它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加"魔法"的特殊方法. 它们经常是两个下划线包围来命名的(比如__init__ ,__lt__ ) ...
- python构造和析构_python魔法方法 构造和析构实例讲解
目录: 一._ _init_ _(self[, ...]) 二._ _new_ _(cls[, ...]) 三._ _del_ _(self) 四.课时41课后习题及答案 说的那么厉害,那什么是魔法方 ...
- python魔方程序算法_Python魔方方法详解
魔法方法 含义 基本的魔法方法 __new__(cls[, ...]) 1. __new__ 是在一个对象实例化的时候所调用的第一个方法 2. 它的第一个参数是这个类,其他的参数是用来直接传递给 __ ...
- python变量运算符_Python基础 — 变量和运算符
序言:这一章我们将学习变量以及常见的类型,我们将以案例和代码相结合的方式进行梳理,但是其中所有的案例和知识点 都是Python3 版本. 变量和运算符 1.1 初步介绍 在程序设计中,变量是一种存 ...
- python参数类型限定_python限定方法参数类型、返回值类型、变量类型等|python3教程|python入门|python教程...
https://www.xin3721.com/eschool/python.html typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints ...
- python中rfind函数_Python rfind()方法
Python rfind()方法 描述 Python rfind() 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1. 语法 rfind()方法语法: str.rfind(st ...
- 下列不是python数据类型的是_Python数据类型方法精心整理,不必死记硬背,看看源码一切都有了...
Python认为一切皆为对象:比如我们初始化一个list时: li = list('abc') 实际上是实例化了内置模块builtins(python2中为__builtin__模块)中的list类: ...
- python字符串的表示_Python字符串方法总结
Python字符串方法图示: (温馨提示:对图片点右键--在新标签页中打开图片) 1.index() 定义:查找并返回指定str的索引位置,如果没找到则会抛异常(查找的顺序是从左至右)可以指定范围:开 ...
- python中drop用法_Python drop方法删除列之inplace参数实例
drop方法有一个可选参数inplace,表明可对原数组作出修改并返回一个新数组.不管参数默认为False还是设置为True,原数组的内存值是不会改变的,区别在于原数组的内容是否直接被修改.默认为Fa ...
最新文章
- vue-cli 使用小技巧
- [cb]ScriptableWizard 创建向导
- 结构化方法与面向对象方法的比较
- JAVA服务治理实践之无侵入的应用服务监控--转
- 分页缓冲池占用很高怎么解决_聊点深的:解析MySQL,看看InnoDB 缓冲池(buffer pool) 工作原理...
- h3c交换机配置远程管理_高手给说下H3C交换机如何配置telnet远程登录
- des加密 ios 和java_三重Des对称加密在Android、Ios 和Java 平台的实现
- 如何自定义MFC的窗口类名
- MIUI V5正式发布 全部功能展示PPT回看
- Cheatsheet: 2015 03.01 ~ 03.31
- Hyper-V 之04 SCVMM 2012 R2安装
- 外观模式又叫门面模式?
- loadrunner11 下载安装说明
- JavaScript-ES6新特性详解
- kali 暴力破解 WiFi破解+fluxion安装使用(保姆级超详细)
- FineBI01:FineBI介绍
- 类似京东淘宝寄售转拍系统源码-拍卖系统源码-竞拍系统网站源码
- 层次分析法--matlab
- 改进的节点分析法(Modified Nodal Analysis)
- Tomcat7源码解析
热门文章
- 技术实践丨如何解决异步接口请求快慢不均导致的数据错误问题?
- 【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频
- 【华为云技术分享】Linux内核发展史 (3)
- 【云速建站】会员注册弹窗添加及设置
- python爬取网页版QQ空间,生成词云图、柱状图、折线图(附源码)
- Android笔记 - Android studio如何添加arr库
- HDFView 3.1.2 在WIN10系统安装后打开出现黑框闪退的解决方法
- 织梦熊掌号提交urls.php,织梦熊掌号api自动提交代码
- 织梦网站服务器配置,织梦本地服务器配置
- 微软的自动更新问题,导致svchost.exe占用cpu超过50%