您的位置:首页 > 编程语言 > Python开发

python 类的运算符及重载

2018-03-28 19:30 239 查看
一般来说,一个类能够计算,是因为内置了add(加),sub(减)等方法

当调用+,-的时候,其实调用的就是add,sub方法

当我们相对类的属性进行运算时,通常会这样:

比如我们定义一个类

class Programer(object):

def __init__(self, name, age):
self.name = name
self.age = age


实例化两个对象

a = Programer("renyi", 25)
b = Programer("huanghuan", 26)


这里我们需要对两个对象的年龄进行相加会这样

print(a.age + b.age)


但是呢,如果我们在类里定义了add等方法:像这样

class Programer(object):

def __init__(self, name, age):
self.name = name
self.age = age

def __eq__(self, other):
if isinstance(other, Programer):
if self.age == other.age:
return True
else:
return False
else:
raise Exception("The type of object must be Programer")

def __add__(self, other):
if isinstance(other, Programer):
return self.age + other.age
else:
raise Exception("The type of object must be Programer")

def __sub__(self, other):
if isinstance(other, Programer):
return self.age - other.age
else:
raise Exception("The type of object must be Programer")

if __name__ == "__main__":
a = Programer("renyi", 25)
b = Programer("huanghuan", 25)
print(a + b)
print(a == b)
print(a - b)


是的我们可以直接对类进行相加了,其实这个骚操作在实际应用中没有什么作用,但是能加深我们队python面向对象的理解,以及类的一些魔术方法,内置运算符的理解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: