子クラスから親クラスのメソッドを使う場合、
superより、親クラスを指定するほうが13%くらい速いみたいですね。
多重継承の場合や、階層が多段の場合は、面倒なので未調査です。
でもたぶん親クラスを直に指定したほうが速そうですね。
今はsuperを使っているのですが、
固まってきたら親クラス指定に変えようかな。
from timeit import Timer
setup = u"""
class Test1(list):
def __init__(self,*vals,**kwds):
list.__init__(self,*vals,**kwds)
class Test2(list):
def __init__(self,*vals,**kwds):
super(Test2,self).__init__(*vals,**kwds)
a=['a']
"""
do1 = u"""
Test1(a)
"""
do2 = u"""
Test2(a)
"""
time1 = Timer(do1, setup).repeat(20, 2000)
time2 = Timer(do2, setup).repeat(20, 2000)
persent = (sum(time1)) * 100 / (sum(time2))
print str(persent) + '%'
86.4219560341%
0 件のコメント:
コメントを投稿