python 重载运算符

python 重载运算符


  • 以双下划线命名的方法(__x__)是特殊的钩子,Python运算符重载的实现是提供特殊命名的方法来拦截运算,Python语言替每种运算和特殊命名的方法之间,定义了固定不变的映射关系
  • 当实例出现在内置运算时,这类方法会自动调用,例如如果实例对象继承了__add__方法,其对象出现在+表达式内时,该方法就会调用。该方法的返回值会变成相应表达式的结果
  • 类可以覆盖多数内置类型运算
  • 运算符覆盖方法没有默认值,而且也不需要:如果类没有定义或集成运算符重载方法,就是说相应的运算在类实例中并不支持,例如如果没有__add__,+表达式就会引发异常
  • 运算符可以让类与Python的对象模型相集成:重载运算符时,以类实现的用户定义对象的行为就像内置对象一样,一次提供了一致性以及与预期的结构的兼容性


class FirstClass:

def setdata(self,value):

self.data=value  #self is the instance

def display(self):

print self.data

class SecondClass(FirstClass):

def __init__(self,value):

self.data=value

def __add__(self,other):

return SecondClass(self.data+other)

def __mul__(self,other):

self.data=self.data*other

a=SecondClass('fsdfsafsa')

a.display()


b=a+'23423424'

b.display()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值