2010年11月17日水曜日

Python:親クラスへのアクセスする手段について

子クラスから親クラスのメソッドを使う場合、
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 件のコメント:

コメントを投稿