python 类特殊方法_python中用特殊方法定制类
#!/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
總結
以上是生活随笔為你收集整理的python 类特殊方法_python中用特殊方法定制类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python pip国内源_【Pytho
- 下一篇: pythontcp_TCP编程