Python中的魔术方法

更多特殊方法参考https://docs.python.org/3/reference/datamodel.html#special-method-names。
在Python中可以定义 add()以实现数字对象的加法, 同时还有一种特殊方法来实现 a + b 的形式,也就是__add__(self, other)方法。
具体的使用方式如下:
class Number():#.......定义了一个Number类,其中定义了特殊方法__add__()
def __init__(self, a_num):
self.number = a_num
def __add__(self, another_num):
return self.number + another_num.number
#....................................创建了两个Number类的对象,并使用了 + 方法来调用类中的__add__()
one = Number(1)
two = Number(2)
print(one + two)#........输出为 3
甚至我们可以让 + 或与之相似的符号完成一些特别的运算:
class String():#...........定义了一个String类,其中覆盖了特殊方法__sub__()和__add__()
def __init__(self, a_str):
self.string = a_str
def __sub__(self, another_str):
return (self.string + ' ' + another_str.string).lower()
def __add__(self, another_str):
return (self.string + ' ' + another_str.string).upper()
#....................................创建了两个String类的对象,并使用了 - 、+ 方法来调用类中的__sub__()和__add__()
a = String('This Is A Python')
b = String('Program')
a - b #.....输出为'this is a python program',也就是连接了两个字符串,还让结果的字母变为小写字母
a + b #.....输出为'THIS IS A PYTHON PROGRAM',也就是连接了两个字符串,还让结果的字母变为大写字母
可能这样还不怎么明显,但这足以证明我们在Python中可以自定义 +、-、*、//、/、**、%、==、!=、<、>、<=、>=的用法。
与数学相关的魔术方法:


与比较相关的魔术方法:


 

另外三个常用的魔术方法:__str__(self)、__repr__(self)、__len__(self),使用方法分别是 str(self)、repr(self)、len(self) 。其中 __str__(self) 可以让对象调用print()时输出我们想让它输出的内容,而不是 “类型” + “地址” 的形式;__repr__(self),在交互解释器上输入有该方法的对象名时与 __str__(self) 相同。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值