20201205_110.特殊方法和运算符重载

首页 » Python » 正文

特殊方法和运算符重载

Python 的运算符实际上是通过调用对象的特殊方法实现的。比如:

a = 20
b = 30
c = a + b
d = a.__add__(b)
print(c)
print(d)
print(dir(a))

运行结果:
20201205_110.特殊方法和运算符重载
常用的特殊方法统计如下:
20201205_110.特殊方法和运算符重载
每个运算符实际上都对应了相应的方法,统计如下:
20201205_110.特殊方法和运算符重载
可以重写上面的特殊方法,即实现“运算符的重载”:

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 '错误!不符合计算逻辑,只能乘以整数。'


p1 = Person('Tom')
p2 = Person('Lucky')

print(p1 + p2)

运行结果:
20201205_110.特殊方法和运算符重载

未经允许不得转载:作者:1324-易同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《20201205_110.特殊方法和运算符重载》 发布于2020-12-07

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录