python 类的运算符及重载
2018-03-28 19:30
239 查看
一般来说,一个类能够计算,是因为内置了add(加),sub(减)等方法
当调用+,-的时候,其实调用的就是add,sub方法
当我们相对类的属性进行运算时,通常会这样:
比如我们定义一个类
实例化两个对象
这里我们需要对两个对象的年龄进行相加会这样
但是呢,如果我们在类里定义了add等方法:像这样
是的我们可以直接对类进行相加了,其实这个骚操作在实际应用中没有什么作用,但是能加深我们队python面向对象的理解,以及类的一些魔术方法,内置运算符的理解
当调用+,-的时候,其实调用的就是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面向对象的理解,以及类的一些魔术方法,内置运算符的理解
相关文章推荐
- python 运算符 供重载参考
- python运算符 供重载参考
- python 运算符 重载可使用
- python类运算符的重载
- python运算符方法重载
- python运算符 供重载参考
- python 运算符 供重载参考
- python中运算符“重载”
- 设计一个string类,通过重载“+=”运算符,实现对两个string类对象m1,m2的操作。
- Python表达式与运算符
- 8-1-2友元函数实现复数运算符的重载
- “[]”运算符的重载
- Python 运算符
- python运算符和条件语句
- 运算符的重载(复数的加减)
- 运算符重载-自加/自减运算符的重载
- python算法习题(四): 添加运算符
- 重载算术运算符
- C++重载自增运算符的效率问题
- Python新路程(5)Python 运算符