#!/usr/bin/python
class Time60(object):
def __init__(self,hr,min):
self.hr = hr
self.min = min
def __str__(self):
return '%d:%d' % (self.hr,self.min)
__repr__ = __str__ #str()内建函数对人的输出是很友好的
def __add__(self,other):
return self.__class__(self.hr + other.hr,self.min + other.min)
#这里我们很明显是需要新建一个对象的,正常情况下,新建一个对象是通过调用类来创建 的,现在是在类中,不能直接调用类名,而是使用self的__class__属性,即实例化的self的那个类来调用它,也就是说self.__class__和Time60是一个东西
def __sub__(self,other):
return self.__class__(self.hr - other.hr,self.min - other.min)
def __iadd__(self,other): #这个特殊方法的定义实现了原位加法,不然是不可 self.hr+other.hr 之后值直接赋值给self.hr的
self.hr += other.hr
self.min += other.min
return self
mon = Time60(10,30)
min = Time60(11,10)
mon + min
print mon,min
print mon + min
mon - min