魔法方法
1.new
>>> class CapStr(str):
def __new__(cls,string):
string=string.upper()
return str.__new__(cls,string)
>>> a=CapStr('I love fish')
>>> a
'I LOVE FISH'
2.del
>>> class C:
def __init__(self):
print ('我是__init__方法,我被调用了...')
def __del__(self):
print('我是__del__方法,我被调用了...')
>>> cl=C()
我是__init__方法,我被调用了...
>>> del c3
>>> del c2
>>> del cl
我是__del__方法,我被调用了...
3.算数运算
>>> class New_int(int):
def __add__(self,other):
return int.__sub__(self,other)
def __sub__(self,other):
return int.__add__(self,other)
>>> a=New_int(3)
>>> b=New_int(5)
>>> a+b
-2
>>> a-b
8
>>> class Nint(int):
def __radd__(self,other):
return int.__sub__ (self,other)
>>> a=Nint(5)
>>> b=Nint(3)
>>> a+b
8
>>> 1+b
2
4.简单定制一个计时器
import time as t
class MyTimer():
def __init__(self):
self.prompt='未开始计时!'
self.lasted=[]
self.begin=0
self.end=0
def __str__(self):
return self.prompt
__repr__=__str__
#开始计时
def start(self):
self.start=t.localtime()
print('计时开始...')
#停止计时
def stop(self):
self.end=t.localtime()
self._calc()
print('计时结束...')
#内部方法,计算运行时间
def _calc(self):
self.lasted=[]
self.prompt='总共运行了'
for index in range(6):
self.lasted.append(self.end[index]-self.begin[index])
self.prompt+=str(self.lasted[index])